root/branches/release-40/t/62-asset.t @ 2562

Revision 2562, 7.0 kB (checked in by bchoate, 18 months ago)

Test suite cleanup. Use MT::Test to force t/ based configuration file for all tests. Fixed several tests that had incorrect expected values.

  • Property svn:keywords set to Author Date Id Revision
Line 
1#!/usr/bin/perl
2# $Id$
3use strict;
4use warnings;
5use File::Copy;
6
7use lib qw( t t/lib ./extlib ./lib);
8
9use Test::More tests => 60;
10use MT::Test qw(:db :data);
11
12use MT;
13use MT::Asset;
14use vars qw( $DB_DIR $T_CFG );
15
16my $mt = MT->new( Config => $T_CFG ) or die MT->errstr;
17isa_ok($mt, 'MT', 'Is MT');
18
19{
20    ### Cases for MT::Asset::Image
21    # object validation
22    my $asset = MT::Asset->load({id => 1});
23    isa_ok($asset, 'MT::Asset::Image', 'Is MT::Asset::Image');
24
25    # method validation\
26#    is($asset->class, 'Image', 'class');
27    is($asset->class_label, 'Image', 'class_label');
28    is(($asset->thumbnail_file({Height => 100, Width => 100}))[0], 't/site/assets_c/2008/06/test-thumb-640x480.jpg', 'thumbnail');
29    is($asset->image_width, 640, 'image_width');
30    is($asset->image_height, 480, 'height');
31    is($asset->as_html, '<form mt:asset-id="1" class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://narnia.na/nana/images/test.jpg">View image</a></form>', 'as_html');
32    is($asset->as_html({popup => 1, popup_asset_id => $asset->id, include => 1}), qq(<form mt:asset-id="1" class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://narnia.na/nana/images/test.jpg" onclick="window.open('http://narnia.na/nana/images/test.jpg','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">View image</a></form>), 'as_html_popup');
33    is($asset->as_html({include => 1, wrap_text => 1, align => 'right'}), '<form mt:asset-id="1" class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Image photo" src="http://narnia.na/nana/images/test.jpg" width="640" height="480" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></form>', 'as_html_include');
34
35    #metadata validation
36    my $meta = $asset->metadata;
37    is($meta->{Tags}, 'alpha, beta, gamma', 'metadata - Tags');
38    is($meta->{URL}, 'http://narnia.na/nana/images/test.jpg', 'metadata - URL');
39    is($meta->{Location}, File::Spec->catfile($ENV{MT_HOME}, "t", 'images', 'test.jpg'), 'metadata - Location');
40    is($meta->{name}, "test.jpg", 'metadata - name');
41    is($meta->{class}, 'image', 'metadata - class');
42    is($meta->{ext}, 'jpg', 'metadata - ext');
43    is($meta->{mime_type}, 'image/jpeg', 'metadata - mime_type');
44    is($meta->{duration}, undef, 'metadata - duration');
45    is($meta->{'Actual Dimensions'}, '640 x 480 pixels', 'metadata - Actual Dimensions');
46
47    # copy original image file
48    my $orig_file = File::Spec->catfile($ENV{MT_HOME}, "t", 'images', 'test.jpg');
49    my $copy_file = File::Spec->catfile($ENV{MT_HOME}, "t", 'images', 'test_.jpg');
50    copy($orig_file, $copy_file);
51
52    # Object creation
53    use Data::Dumper;
54    my $img_pkg = MT::Asset->class_handler('image');
55    $asset = new $img_pkg;
56    isa_ok($asset, 'MT::Asset::Image', 'New object is MT::Asset::Image');
57    $asset->blog_id(1);
58    $asset->url('http://narnia.na/nana/images/test_.jpg');
59    $asset->file_path($copy_file);
60    $asset->file_name('test_.jpg');
61    $asset->file_ext('jpg');
62    $asset->image_width(640);
63    $asset->image_height(480);
64    $asset->mime_type('image/jpeg');
65    $asset->label('Image photo');
66    $asset->description('This is a test photo.');
67    $asset->created_by(1);
68    $asset->tags('alpha', 'beta', 'gamma');
69    $asset->parent(1);
70    $asset->save;
71
72    my $asset_id = $asset->id;
73    my $valid_asset = MT::Asset->load($asset_id);
74    is($valid_asset->class, 'image', 'class');
75    is($valid_asset->blog_id, 1, 'blog_id');
76    is($valid_asset->label, 'Image photo', 'label');
77    is($valid_asset->url, 'http://narnia.na/nana/images/test_.jpg', 'url');
78    is($valid_asset->description, 'This is a test photo.', 'description');
79    is($valid_asset->file_path, $copy_file);
80    is($valid_asset->file_name, 'test_.jpg', 'file_name');
81    is($valid_asset->file_ext, 'jpg', 'file_ext');
82    is($valid_asset->mime_type, 'image/jpeg', 'mime_type');
83    is($valid_asset->image_width, 640, 'image_width');
84    is($valid_asset->image_height, 480, 'image_height');
85    is($valid_asset->parent, 1, 'parent');
86   
87    # Object remove
88    ok($valid_asset->remove, 'remove');
89
90    $valid_asset = MT::Asset->load($asset_id);
91    is($valid_asset, undef, 'remove success');
92    ok(!-f $copy_file, "file remove");
93
94
95    ### Cases for MT::Asset
96    # object validation
97    my $asset_f = MT::Asset->load(2);
98    isa_ok($asset_f, 'MT::Asset', 'Is MT::Asset');
99
100    # method validation\
101    is($asset_f->class, 'file', 'class');
102    is($asset_f->class_label, 'Asset', 'class_label');
103    is($asset_f->as_html, '<form mt:asset-id="2" class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://narnia.na/nana/files/test.tmpl">test.tmpl</a></form>', 'as_html');
104
105    #metadata validation
106    my $meta_f = $asset_f->metadata;
107    is($meta_f->{Tags}, 'beta', 'metadata - Tags');
108    is($meta_f->{URL}, 'http://narnia.na/nana/files/test.tmpl', 'metadata - URL');
109    is($meta_f->{Location}, File::Spec->catfile($ENV{MT_HOME}, "t", 'test.tmpl'), 'metadata - Location');
110    is($meta_f->{name}, "test.tmpl", 'metadata - name');
111    is($meta_f->{class}, 'file', 'metadata - class');
112    is($meta_f->{ext}, 'tmpl', 'metadata - ext');
113    is($meta_f->{mime_type}, 'text/plain', 'metadata - mime_type');
114    is($meta_f->{duration}, undef, 'metadata - duration');
115
116    # copy original image file
117    my $orig_file_f = File::Spec->catfile($ENV{MT_HOME}, "t", 'test.tmpl');
118    my $copy_file_f = File::Spec->catfile($ENV{MT_HOME}, "t", 'test_.tmpl');
119    copy($orig_file, $copy_file);
120
121    # Object creation
122    my $img_pkg_f = MT::Asset->class_handler('File');
123    $asset_f =  new $img_pkg_f;
124    isa_ok($asset_f, 'MT::Asset', 'New object is MT::Asset');
125    $asset_f->blog_id(1);
126    $asset_f->url('http://narnia.na/nana/files/test_.tmpl');
127    $asset_f->file_path($copy_file_f);
128    $asset_f->file_name('test_.tmpl');
129    $asset_f->file_ext('tmpl');
130    $asset_f->mime_type('text/plain');
131    $asset_f->label('Test template');
132    $asset_f->description('This is a test template.');
133    $asset_f->created_by(1);
134    $asset_f->tags('beta');
135    $asset_f->parent(1);
136    $asset_f->save;
137
138    my $asset_id_f = $asset_f->id;
139    my $valid_asset_f = MT::Asset->load($asset_id_f);
140    is($valid_asset_f->class, 'file', 'class');
141    is($valid_asset_f->blog_id, 1, 'blog_id');
142    is($valid_asset_f->label, 'Test template', 'label');
143    is($valid_asset_f->url, 'http://narnia.na/nana/files/test_.tmpl', 'url');
144    is($valid_asset_f->description, 'This is a test template.', 'description');
145    is($valid_asset_f->file_path, $copy_file_f);
146    is($valid_asset_f->file_name, 'test_.tmpl', 'file_name');
147    is($valid_asset_f->file_ext, 'tmpl', 'file_ext');
148    is($valid_asset_f->mime_type, 'text/plain', 'mime_type');
149    is($valid_asset_f->parent, 1, 'parent');
150   
151    # Object remove
152    ok($valid_asset_f->remove, 'remove');
153
154    $valid_asset_f = MT::Asset->load($asset_id_f);
155    is($valid_asset_f, undef, 'remove success');
156    ok(!-f $copy_file_f, "file remove");
157}
Note: See TracBrowser for help on using the browser.