root/branches/feature-narrow-tables/t/lib/MT/Test.pm @ 1813

Revision 1813, 28.8 kB (checked in by mpaschal, 20 months ago)

Track (some of) what we're saving when
Throw errors made when saving assets
BugzID: 68749

  • Property svn:keywords set to Id Revision
Line 
1package MT::Test;
2
3use strict;
4# Handle cwd = MT_DIR, MT_DIR/t
5use lib 't/lib', 'extlib', 'lib', '../lib', '../extlib';
6use File::Spec;
7use MT;
8
9use Test::More;
10
11BEGIN {
12    # if MT_HOME is not set, set it
13    unless ($ENV{MT_HOME}) {
14        require Cwd;
15        my $cwd = Cwd::getcwd();
16        my @pieces = File::Spec->splitdir($cwd);
17        pop @pieces unless -d 't';
18        $ENV{MT_HOME} = File::Spec->catdir(@pieces);
19    }
20    # if MT_CONFIG is not set, set it
21    if ($ENV{MT_CONFIG}) {
22        if (!File::Spec->file_name_is_absolute($ENV{MT_CONFIG})) {
23            $ENV{MT_CONFIG} = File::Spec->catfile($ENV{MT_HOME}, "t", $ENV{MT_CONFIG});
24        }
25    } else {
26        $ENV{MT_CONFIG} = File::Spec->catfile($ENV{MT_HOME}, "t", "mt.cfg");
27    }
28    chdir $ENV{MT_HOME};
29    my $ds_dir = File::Spec->catdir($ENV{MT_HOME}, "t", "db");
30    if (!-d $ds_dir) {
31        mkdir $ds_dir;
32    }
33}
34
35sub import {
36    my $pkg = shift;
37    foreach my $opt (@_) {
38        if ($opt eq ':db') {
39            diag "Initializing database";
40            $pkg->init_db();
41        }
42        elsif ($opt eq ':testdb') {
43            $pkg->init_test_db();
44        }
45        elsif ($opt eq ':data') {
46            diag "Initializing sample data";
47            $pkg->sample_data();
48        }
49    }
50}
51
52sub init_test_db {
53    my $pkg = shift;
54    # This is a bit of MT::Upgrade magic to prevent the full
55    # instantiation of the MT schema. We force the classes list
56    # to only contain the test 'Foo', 'Bar' classes and neuter
57    # the
58    require MT::Upgrade;
59    # Add our test 'Foo' and 'Bar' classes to the list of
60    # object classes to install.
61    %MT::Upgrade::classes = (foo=>'Foo',bar=>'Bar');
62    #MT::Upgrade->register_class(['Foo', 'Bar']);
63    MT->instance;
64    MT->registry->{object_types}->{foo} = 'Foo';
65    MT->registry->{object_types}->{bar} = 'Bar';
66
67    # Replace the standard seed_database/install_template functions
68    # with stubs since we're not creating a full schema.
69    MT::Upgrade->register_upgrade_function({
70        core_seed_database     => { code => sub { 1 } },
71        core_upgrade_templates => { code => sub { 1 } },
72        core_upgrade_templates => { code => sub { 1 } },
73        core_finish            => { code => sub { 1 } },
74    });
75    $pkg->init_db();
76}
77
78sub init_db {
79    my $pkg = shift;
80    my ($cfg) = @_;
81
82    my $mt = MT->instance($cfg ? (Config => $cfg) : ())
83        or die "No MT object " . MT->errstr;
84
85    my $types = MT->registry('object_types');
86    my @classes = map { $types->{$_} } grep { $_ !~ /\./ } sort keys %$types;
87    foreach my $class (@classes) {
88        if (ref($class) eq 'ARRAY') {
89            next; #TODO for now - it won't hurt when we do driver-tests.
90        }
91        elsif (!defined *{ $class . '::__properties' }) {
92            eval 'require '.$class or die $@;
93        }
94    }
95
96    # Clear existing database tables
97    my $driver = MT::Object->driver();
98    foreach my $class (@classes) {
99        if (ref($class) eq 'ARRAY') {
100            next; #TODO for now - it won't hurt when we do driver-tests.
101        }
102        else {
103            if ($driver->dbd->ddl_class->table_exists($class)) {
104                $driver->sql(
105                    $driver->dbd->ddl_class->drop_table_sql($class),
106                );
107                $driver->dbd->ddl_class->drop_sequence($class),
108            }
109        }
110    }
111
112    require MT::Upgrade;
113    # Initialize the MT database
114    MT::Upgrade->do_upgrade(
115        Install => 1, 
116        App     => __PACKAGE__, 
117        User    => {},
118        Blog    => {}
119    );
120    eval {
121        MT::Entry->remove;
122        MT::Comment->remove;
123    };
124}
125
126sub progress {}
127sub error {
128    my ($x, $msg) = @_;
129    print "ERROR: $msg\n";
130}
131
132sub sample_data {
133    my $pkg = shift;
134    my $blog = MT::Blog->new();
135    $blog->set_values({
136        name => 'none',
137        site_url => 'http://narnia.na/nana/',
138        archive_url => 'http://narnia.na/nana/archives/',
139        site_path => 't/site/',
140        archive_path => 't/site/archives/',
141        archive_type=>'Individual,Monthly,Weekly,Daily,Category,Page',
142        archive_type_preferred => 'Individual',
143        description => "Narnia None Test Blog",
144        custom_dynamic_templates => 'custom',
145        convert_paras => 1,
146        allow_reg_comments => 1,
147        allow_unreg_comments => 0,
148        allow_pings => 1,
149        sort_order_posts => 'descend',
150        sort_order_comments => 'ascend',
151        remote_auth_token => 'token',
152        convert_paras_comments => 1,
153        google_api_key => 'r9Vj5K8PsjEu+OMsNZ/EEKjWmbCeQAv1',
154        cc_license => 'by-nc-sa http://creativecommons.org/licenses/by-nc-sa/2.0/ http://creativecommons.org/images/public/somerights20.gif',
155        server_offset => '-3.5',
156        children_modified_on => '20000101000000',
157        language => 'en_us',
158        file_extension => 'html',
159    });
160    $blog->id(1);
161    $blog->commenter_authenticators('enabled_TypeKey');
162    $blog->save() or die "Couldn't save blog 1: ". $blog->errstr;
163    diag "Saved blog";
164
165    require MT::Entry;
166    require MT::Author;
167    my $chuckd = MT::Author->new();
168    $chuckd->set_values({
169        name => 'Chuck D',
170        nickname => 'Chucky Dee', 
171        email => 'chuckd@example.com',
172        url => 'http://chuckd.com/',
173        api_password => 'seecret',
174        auth_type => 'MT',
175    });
176    $chuckd->set_password("bass");
177    $chuckd->type(MT::Author::AUTHOR());
178    $chuckd->id(2);
179    $chuckd->is_superuser(1);
180    $chuckd->save()
181        or die "Couldn't save author record 2: " . $chuckd->errstr;
182    diag "Saved user Chuck D";
183
184    my $bobd = MT::Author->new();
185    $bobd->set_values({
186        name => 'Bob D',
187        nickname => 'Dylan', 
188        email => 'bobd@example.com',
189        auth_type => 'MT',
190    });
191    $bobd->set_password("flute");
192    $bobd->type(MT::Author::AUTHOR());
193    $bobd->id(3);
194    $bobd->save() or die "Couldn't save author record 3: " . $bobd->errstr;
195    diag "Saved user Bob D";
196
197    my $johnd = MT::Author->new();
198    $johnd->set_values({
199        name => 'John Doe',
200        nickname => 'John Doe',
201        email => 'jdoe@doe.com',
202        auth_type => 'TypeKey',
203    });
204    $johnd->type(MT::Author::COMMENTER());
205    $johnd->password('(none)');
206    $johnd->id(4);
207    $johnd->save() or die "Couldn't save author record 4: " . $johnd->errstr;
208    diag "Saved user John Doe";
209
210    my $hiro = MT::Author->new();
211    $hiro->set_values({
212        name => 'Hiro Nakamura',
213        nickname => 'Hiro',
214        email => 'hiro@heroes.com',
215        auth_type => 'MT',
216    });
217    $hiro->type(MT::Author::AUTHOR());
218    $hiro->password('time');
219    $hiro->id(5);
220    $hiro->status(2);
221    $hiro->save() or die "Couldn't save author record 5: " . $hiro->errstr;
222    diag "Saved user Hiro";
223
224    require MT::Association;
225    my $assoc = MT::Association->new();
226    $assoc->author_id($chuckd->id);
227    $assoc->blog_id(1);
228    $assoc->role_id(3);
229    $assoc->type(1);
230    $assoc->save();
231
232    $assoc = MT::Association->new();
233    $assoc->author_id($bobd->id);
234    $assoc->blog_id(1);
235    $assoc->role_id(4);
236    $assoc->type(1);
237    $assoc->save();
238
239    $assoc = MT::Association->new();
240    $assoc->author_id($hiro->id);
241    $assoc->blog_id(1);
242    $assoc->role_id(3);
243    $assoc->type(1);
244    $assoc->save();
245
246    # set permission record for johnd commenter on blog 1
247    $johnd->approve(1);
248
249    my $entry = MT::Entry->load(1);
250    if (!$entry) {
251        $entry = MT::Entry->new();
252        $entry->set_values({
253            blog_id => 1,
254            title => 'A Rainy Day',
255            text => 'On a drizzly day last weekend,',
256            text_more => 'I took my grandpa for a walk.',
257            excerpt => 'A story of a stroll.',
258            keywords => 'keywords',
259            created_on => '19780131074500',
260            authored_on => '19780131074500',
261            modified_on => '19780131074600',
262            authored_on => '19780131074500',
263            author_id => $chuckd->id,
264            pinged_urls => 'http://technorati.com/',
265            allow_comments => 1,
266            allow_pings => 1,
267            status => MT::Entry::RELEASE(),
268        });
269        $entry->id(1);
270        $entry->tags('rain', 'grandpa', 'strolling');
271        $entry->save() or die "Couldn't save entry record 1: ".$entry->errstr;
272        diag "Saved entry #1";
273    }
274
275    $entry = MT::Entry->load(2);
276    if (!$entry) {
277        $entry = MT::Entry->new();
278        $entry->set_values({
279            blog_id => 1,
280            title => 'A preponderance of evidence',
281            text => 'It is sufficient to say...',
282            text_more => 'I suck at making up test data.',
283            created_on => '19790131074500',
284            authored_on => '19790131074500',
285            modified_on => '19790131074600',
286            authored_on => '19780131074500',
287            author_id => $bobd->id,
288            allow_comments => 1,
289            status => MT::Entry::FUTURE(),
290        });
291        $entry->id(2);
292        $entry->save() or die "Couldn't save entry record 2: ".$entry->errstr;
293        diag "Saved entry #2";
294    }
295
296    $entry = MT::Entry->load(3);
297    if (!$entry) {
298        $entry = MT::Entry->new();
299        $entry->set_values({
300            blog_id => 1,
301            title => 'Spurious anemones',
302            text => '...are better than the non-spurious',
303            text_more => 'variety.',
304            created_on => '19770131074500',
305            authored_on => '19790131074500',
306            modified_on => '19770131074600',
307            authored_on => '19780131074500',
308            author_id => $chuckd->id,
309            allow_comments => 1,
310            allow_pings => 0,
311            status => MT::Entry::HOLD(),
312        });
313        $entry->id(3);
314        $entry->tags('anemones');
315        $entry->save() or die "Couldn't save entry record 3: ".$entry->errstr;
316        diag "Saved entry #3";
317    }
318
319    require MT::Trackback;
320    my $tb = MT::Trackback->load(1);
321    if (!$tb) {
322        $tb = new MT::Trackback;
323        $tb->entry_id(1);
324        $tb->blog_id(1);
325        $tb->title("Entry TrackBack Title");
326        $tb->description("Entry TrackBack Description");
327        $tb->category_id(0);
328        $tb->id(1);
329        $tb->save or die "Couldn't save Trackback record 1: " . $tb->errstr;;
330    }
331
332    require MT::TBPing;
333    my $ping = MT::TBPing->load(1);
334    if (!$ping) {
335        $ping = new MT::TBPing;
336        $ping->tb_id(1);
337        $ping->blog_id(1);
338        $ping->ip('127.0.0.1');
339        $ping->title('Foo');
340        $ping->excerpt('Bar');
341        $ping->source_url('http://example.com/');
342        $ping->blog_name("Example Blog");
343        $ping->created_on('20050405000000');
344        $ping->id(1);
345        $ping->visible(1);
346        $ping->save or die "Couldn't save TBPing record 1: " . $ping->errstr;
347        diag "Saved a trackback ping";
348    }
349
350    my @verses = (
351        'Oh, where have you been, my blue-eyed son?
352Oh, where have you been, my darling young one?',
353        'I saw a newborn baby with wild wolves all around it
354I saw a highway of diamonds with nobody on it',
355        'Heard one hundred drummers whose hands were a-blazin\',
356Heard ten thousand whisperin\' and nobody listenin\'',
357        'I met one man who was wounded in love,
358I met another man who was wounded with hatred',
359        'Where hunger is ugly, where souls are forgotten,
360Where black is the color, where none is the number,
361And it\'s a hard, it\'s a hard, it\'s a hard, it\'s a hard,
362It\'s a hard rain\'s a-gonna fall',
363    );
364
365    require MT::Category;
366    my $cat = MT::Category->load({ label => 'foo', blog_id => 1});
367    if (!$cat) {
368        $cat = new MT::Category;
369        $cat->blog_id(1);
370        $cat->label('foo');
371        $cat->description('bar');
372        $cat->author_id($chuckd->id);
373        $cat->parent(0);
374        $cat->id(1);
375        $cat->save or die "Couldn't save category record 1: ". $cat->errstr;
376        diag "Saved category foo";
377    }
378
379    $cat = MT::Category->load({ label => 'bar', blog_id => 1});
380    if (!$cat) {
381        $cat = new MT::Category;
382        $cat->blog_id(1);
383        $cat->label('bar');
384        $cat->description('foo');
385        $cat->author_id($chuckd->id);
386        $cat->parent(0);
387        $cat->id(2);
388        $cat->save or die "Couldn't save category record 2: ". $cat->errstr;
389        diag "Saved category bar";
390    }
391
392    $tb = MT::Trackback->load(2);
393    if (!$tb) {
394        $tb = new MT::Trackback;
395        $tb->title("Category TrackBack Title");
396        $tb->description("Category TrackBack Description");
397        $tb->entry_id(0);
398        $tb->blog_id(1);
399        $tb->category_id(2);
400        $tb->id(2);
401        $tb->save or die "Couldn't save Trackback record 2: " . $tb->errstr;;
402        diag "Saved category bar's trackback target";
403    }
404
405    $cat = MT::Category->load({ label => 'subfoo', blog_id => 1});
406    if (!$cat) {
407        $cat = new MT::Category;
408        $cat->blog_id(1);
409        $cat->label('subfoo');
410        $cat->description('subcat');
411        $cat->author_id($bobd->id);
412        $cat->parent(1);
413        $cat->id(3);
414        $cat->save or die "Couldn't save category record 3: ". $cat->errstr;
415        diag "Saved subcategory subfoo";
416    }
417
418    require MT::Placement;
419    foreach my $i (1..@verses) {
420        $entry = MT::Entry->load($i+3);
421        if (!$entry) {
422            $entry = MT::Entry->new();
423            $entry->set_values({
424                blog_id => 1,
425                title => "Verse $i",
426                text => $verses[$i],
427                author_id => ($i == 3 ? $bobd->id : $chuckd->id),
428                created_on => sprintf("%04d0131074501", $i + 1960),
429                authored_on => sprintf("%04d0131074501", $i + 1960),
430                modified_on => sprintf("%04d0131074601", $i + 1960),
431                authored_on => sprintf("%04d0131074501", $i + 1960),
432                allow_comments => ($i <= 2 ? 0 : 1),
433                status => MT::Entry::RELEASE(),
434            });
435            $entry->id($i+3);
436            $entry->tags('verse');
437            $entry->save()
438                or die "Couldn't save entry record ".($entry->id).": ". $entry->errstr;
439            if ($i == 3) {
440                my $place = new MT::Placement;
441                $place->entry_id($entry->id);
442                $place->blog_id(1);
443                $place->category_id(1);
444                $place->is_primary(1);
445                $place->save
446                    or die "Couldn't save placement record: ".$place->errstr;
447                diag "Placed entry Verse 3 in category foo";
448            }
449            if ($i == 4) {
450                my $place = new MT::Placement;
451                $place->entry_id($entry->id);
452                $place->blog_id(1);
453                $place->category_id(3);
454                $place->is_primary(1);
455                $place->save
456                    or die "Couldn't save placement record: ".$place->errstr;
457                diag "Placed entry Verse 4 in category subfoo";
458            }
459        }
460    }
461
462    # entry id 1 - 1 visible comment
463    # entry id 4 - no comments, commenting is off
464    require MT::Comment;
465    unless (MT::Comment->count({entry_id => 1})) {
466        my $cmt = new MT::Comment();
467        $cmt->set_values({
468            text => 'Postmodern false consciousness has always been firmly rooted in post-Freudian Lacanian neo-Marxist bojangles. Needless to say, this quickly and asymptotically approches a purpletacular jouissance of etic jumpinmypants.',
469            entry_id => 1,
470            author => 'v14GrUH 4 cheep',
471            visible => 1,
472            email => 'jake@fatman.com',
473            url => 'http://fatman.com/',
474            blog_id => 1,
475            ip => '127.0.0.1',
476            created_on => '20040914182800',
477        });
478        $cmt->id(1);
479        $cmt->save() or die "Couldn't save comment record 1: ".$cmt->errstr;
480        diag "Saved comment #1";
481
482        $cmt->id(11);
483        $cmt->text('Comment reply for comment 1');
484        $cmt->author('Comment 11');
485        $cmt->created_on('20040812182900');
486        $cmt->parent_id(1);
487        $cmt->save() or die "Couldn't save comment record 11: ".$cmt->errstr;
488        diag "Saved child comment #11";
489
490        $cmt->id(12);
491        $cmt->text('Comment reply for comment 11');
492        $cmt->author('Comment 12');
493        $cmt->created_on('20040810183000');
494        $cmt->parent_id(11);
495        $cmt->save() or die "Couldn't save comment record 12: ".$cmt->errstr;
496        diag "Saved child comment #12";
497    }
498    # entry id 5 - 1 comment, commenting is off (closed)
499    unless (MT::Comment->count({entry_id => 5})) {
500        my $cmt = new MT::Comment();
501        $cmt->set_values({
502            text => 'Comment for entry 5, visible',
503            entry_id => 5,
504            author => 'Comment 2',
505            visible => 1,
506            email => 'johnd@doe.com',
507            url => 'http://john.doe.com/',
508            commenter_id => $johnd->id,
509            blog_id => 1,
510            ip => '127.0.0.1',
511            created_on => '20040912182800',
512        });
513        $cmt->id(2);
514        $cmt->junk_score(1.5);
515        $cmt->save() or die "Couldn't save comment record 2: ".$cmt->errstr;
516    }
517    # entry id 6 - 3 comment visible, 1 moderated
518    unless (MT::Comment->count({entry_id => 6})) {
519        my $cmt = new MT::Comment();
520        $cmt->set_values({
521            text => 'Comment for entry 6, visible',
522            entry_id => 6,
523            author => 'Comment 3',
524            visible => 1,
525            email => '',
526            url => '',
527            blog_id => 1,
528            ip => '127.0.0.1',
529            created_on => '20040911182800',
530        });
531        $cmt->id(3);
532        $cmt->save() or die "Couldn't save comment record 3: ".$cmt->errstr;
533
534        $cmt->id(4);
535        $cmt->visible(0);
536        $cmt->author('Comment 4');
537        $cmt->text('Comment for entry 6, moderated');
538        $cmt->created_on('20040910182800');
539        $cmt->save() or die "Couldn't save comment record 4: ".$cmt->errstr;
540       
541        $cmt->text("All your comments are belonged to me.");
542        $cmt->commenter_id($chuckd->id);
543        $cmt->visible(1);
544        $cmt->id(14);
545        $cmt->save or die "Couldn't save comment record 1: ".$cmt->errstr;
546
547        $cmt->text("All your comments are belonged to us MT Authors.");
548        $cmt->commenter_id($bobd->id);
549        $cmt->visible(1);
550        $cmt->id(15);
551        $cmt->save or die "Couldn't save comment record 1: ".$cmt->errstr;
552    }
553    # entry id 7 - 0 comment visible, 1 moderated
554    unless (MT::Comment->count({entry_id => 7})) {
555        my $cmt = new MT::Comment();
556        $cmt->set_values({
557            text => 'Comment for entry 7, moderated',
558            entry_id => 7,
559            author => 'Comment 7',
560            visible => 0,
561            email => '',
562            url => '',
563            blog_id => 1,
564            ip => '127.0.0.1',
565            created_on => '20040909182800',
566        });
567        $cmt->id(5);
568        $cmt->save() or die "Couldn't save comment record 5: ".$cmt->errstr;
569    }
570    # entry id 8 - 1 comment visible, 1 moderated, 1 junk
571    unless (MT::Comment->count({entry_id => 8})) {
572        my $cmt = new MT::Comment();
573        $cmt->set_values({
574            text => 'Comment for entry 8, visible',
575            entry_id => 8,
576            author => 'Comment 8',
577            visible => 1,
578            email => '',
579            url => '',
580            blog_id => 1,
581            ip => '127.0.0.1',
582            created_on => '20040814182800',
583        });
584        $cmt->id(6);
585        $cmt->save() or die "Couldn't save comment record 6: ".$cmt->errstr;
586
587        $cmt->id(7);
588        $cmt->visible(0);
589        $cmt->text('Comment for entry 8, moderated');
590        $cmt->author('JD7');
591        $cmt->created_on('20040812182800');
592        $cmt->save() or die "Couldn't save comment record 7: ".$cmt->errstr;
593
594        $cmt->id(8);
595        $cmt->visible(0);
596        $cmt->junk_status(-1);
597        $cmt->text('Comment for entry 8, junk');
598        $cmt->author('JD8');
599        $cmt->created_on('20040810182800');
600        $cmt->save() or die "Couldn't save comment record 8: ".$cmt->errstr;
601    }
602
603    require MT::Template;
604    require MT::TemplateMap;
605
606    my $tmpl = new MT::Template;
607    $tmpl->blog_id(1);
608    $tmpl->name('blog-name');
609    $tmpl->text('<MTBlogName>');
610    $tmpl->type('custom');
611    $tmpl->save or die "Couldn't save template record 1: ".$tmpl->errstr;
612    diag "Saved blog-name template";
613
614    ### Asset
615    use MT::Asset;
616
617    my $img_pkg = MT::Asset->class_handler('image');
618    my $file_pkg = MT::Asset->class_handler('file');
619    my $asset = new $img_pkg;
620    $asset->blog_id(1);
621    $asset->url('http://narnia.na/nana/images/test.jpg');
622    $asset->file_path(File::Spec->catfile($ENV{MT_HOME}, "t", 'images', 'test.jpg'));
623    $asset->file_name('test.jpg');
624    $asset->file_ext('jpg');
625    $asset->image_width(640);
626    diag "Set image asset's width metadata field";
627    $asset->image_height(480);
628    $asset->mime_type('image/jpeg');
629    $asset->label('Image photo');
630    $asset->description('This is a test photo.');
631    $asset->created_by(1);
632    $asset->tags('alpha', 'beta', 'gamma');
633    diag "Tagged image asset";
634    $asset->save or die "Couldn't save asset record 1: " . $asset->errstr;
635    diag "Saved image asset";
636
637    $asset->set_score('unit test', $bobd, 5, 1);
638    $asset->set_score('unit test', $johnd, 3, 1);
639    $asset->set_score('unit test', MT::Author->load(1), 4, 1);
640
641    $asset = new $file_pkg;
642    $asset->blog_id(1);
643    $asset->url('http://narnia.na/nana/files/test.tmpl');
644    $asset->file_path(File::Spec->catfile($ENV{MT_HOME}, "t", 'test.tmpl'));
645    $asset->file_name('test.tmpl');
646    $asset->file_ext('tmpl');
647    $asset->mime_type('text/plain');
648    $asset->label('Template');
649    $asset->description('This is a test template.');
650    $asset->created_by(1);
651    $asset->created_on('19780131074500');
652    $asset->tags('beta');
653    $asset->save or die "Couldn't save file asset record: " . $asset->errstr;
654    diag "Saved file asset";
655
656    $asset->set_score('unit test', $chuckd, 2, 1);
657    $asset->set_score('unit test', $johnd, 3, 1);
658   
659    ## ObjectScore
660    my $e5 = MT::Entry->load(5);
661    $e5->set_score('unit test', $bobd, 5, 1);
662    $e5->set_score('unit test', $johnd, 3, 1);
663    $e5->set_score('unit test', MT::Author->load(1), 4, 1);
664
665    my $e6 = MT::Entry->load(6);
666    $e6->set_score('unit test', $chuckd, 1, 1);
667    $e6->set_score('unit test', $johnd, 1, 1);
668   
669    my $e4 = MT::Entry->load(4);
670    $e4->set_score('unit test', $chuckd, 2, 1);
671    $e4->set_score('unit test', $johnd, 3, 1);
672    diag "Saved scores for entry #4";
673
674    ## Page
675    require MT::Page;
676    my $page = MT::Page->new();
677    $page->set_values({
678        blog_id => 1,
679        title => 'Watching the River Flow',
680        text => 'What the matter with me,',
681        text_more => 'I don\'t have much to say,',
682        keywords => 'no folder',
683        excerpt => 'excerpt',
684        created_on => '19780131074500',
685        authored_on => '19780131074500',
686        modified_on => '19780131074600',
687        author_id => $chuckd->id,
688        status => MT::Entry::RELEASE(),
689    });
690    $page->id(20);
691    $page->tags('river', 'flow', 'watch');
692    $page->save() or die "Couldn't save page record 20: ".$page->errstr;
693
694    require MT::Folder;
695    my $folder = MT::Folder->new();
696    $folder->blog_id(1);
697    $folder->label('info');
698    $folder->description('information');
699    $folder->author_id($chuckd->id);
700    $folder->parent(0);
701    $folder->id(20);
702    $folder->save or die "Could'n sae folder record 20:" . $folder->errstr;
703    diag "Saved folder #20";
704
705    $folder = MT::Folder->new();
706    $folder->blog_id(1);
707    $folder->label('download');
708    $folder->description('download top');
709    $folder->author_id($chuckd->id);
710    $folder->parent(0);
711    $folder->id(21);
712    $folder->save or die "Could'n sae folder record 21:" . $folder->errstr;
713
714    $folder = MT::Folder->new();
715    $folder->blog_id(1);
716    $folder->label('nightly');
717    $folder->description('nightly build');
718    $folder->author_id($chuckd->id);
719    $folder->parent(21);
720    $folder->id(22);
721    $folder->save or die "Could'n sae folder record 22:" . $folder->errstr;
722
723    $page = MT::Page->new();
724    $page->set_values({
725        blog_id => 1,
726        title => 'Page #1',
727        text => 'Wish I was back in the city',
728        text_more => 'Instead of this old bank of sand,',
729        keywords => 'keywords',
730        created_on => '19790131074500',
731        authored_on => '19790131074500',
732        modified_on => '19790131074600',
733        author_id => $chuckd->id,
734        status => MT::Entry::RELEASE(),
735    });
736    $page->id(21);
737    $page->tags('page1', 'page2', 'page3');
738    $page->save() or die "Couldn't save page record 21: ".$page->errstr;
739
740    my $folder_place = new MT::Placement;
741    $folder_place->entry_id(21);
742    $folder_place->blog_id(1);
743    $folder_place->category_id(20);
744    $folder_place->is_primary(1);
745    $folder_place->save
746        or die "Couldn't save placement record: ".$folder_place->errstr;
747
748    $page = MT::Page->new();
749    $page->set_values({
750        blog_id => 1,
751        title => 'Page #2',
752        text => 'With the sub beating down over the chimney tops',
753        text_more => 'And the one I love so close at hand',
754        keywords => 'keywords',
755        created_on => '19800131074500',
756        authored_on => '19800131074500',
757        modified_on => '19800131074600',
758        author_id => $chuckd->id,
759        status => MT::Entry::RELEASE(),
760    });
761    $page->id(22);
762    $page->tags('page2', 'page3');
763    $page->save() or die "Couldn't save page record 22: ".$page->errstr;
764
765    $folder_place = new MT::Placement;
766    $folder_place->entry_id(22);
767    $folder_place->blog_id(1);
768    $folder_place->category_id(21);
769    $folder_place->is_primary(1);
770    $folder_place->save
771        or die "Couldn't save placement record: ".$folder_place->errstr;
772
773    $page = MT::Page->new();
774    $page->set_values({
775        blog_id => 1,
776        title => 'Page #3',
777        text => 'If I had wings and I could fly,',
778        text_more => 'I know where I would go.',
779        keywords => 'keywords',
780        created_on => '19810131074500',
781        authored_on => '19810131074500',
782        modified_on => '19810131074600',
783        author_id => $bobd->id,
784        status => MT::Entry::RELEASE(),
785    });
786    $page->id(23);
787    $page->tags('page3');
788    $page->save() or die "Couldn't save page record 23: ".$page->errstr;
789
790    $folder_place = new MT::Placement;
791    $folder_place->entry_id(23);
792    $folder_place->blog_id(1);
793    $folder_place->category_id(22);
794    $folder_place->is_primary(1);
795    $folder_place->save
796        or die "Couldn't save placement record: ".$folder_place->errstr;
797
798    unless (MT::Comment->count({entry_id => $page->id})) {
799        my $page_cmt = new MT::Comment();
800        $page_cmt->set_values({
801            text => "Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma - which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.",
802            entry_id => 23,
803            author => 'Steve Jobs',
804            visible => 1,
805            email => 'f@example.com',
806            url => 'http://example.com/',
807            blog_id => 1,
808            ip => '127.0.0.1',
809            created_on => '20040114182800',
810            modified_on => '20040114182800',
811        });
812        $page_cmt->id(13);
813        $page_cmt->save() or die "Couldn't save comment record 1: ".$page_cmt->errstr;
814    }
815
816    my $page_tb = MT::Trackback->new;
817    $page_tb->entry_id($page->id);
818    $page_tb->blog_id(1);
819    $page_tb->title("Page TrackBack Title");
820    $page_tb->description("Page TrackBack Description");
821    $page_tb->category_id(0);
822    $page_tb->id(3);
823    $page_tb->save or die "Couldn't save Trackback record 1: " . $tb->errstr;;
824
825    my $page_ping = MT::TBPing->new;
826    $page_ping->tb_id($page_tb->id);
827    $page_ping->blog_id(1);
828    $page_ping->ip('127.0.0.1');
829    $page_ping->title('Trackbacking to a page');
830    $page_ping->excerpt('Four bridges in the bayarea.  Golden Gate, Bay, San Mateo and Dan Burton.');
831    $page_ping->source_url('http://example.com/');
832    $page_ping->blog_name("Example Blog");
833    $page_ping->created_on('20040101000000');
834    $page_ping->modified_on('20040101000000');
835    $page_ping->visible(1);
836    $page_ping->id(3);
837    $page_ping->save or die "Couldn't save TBPing record 1: " . $ping->errstr;
838
839    MT->instance->rebuild(
840        BlogId => 1,
841        EntryCallback => sub { print STDERR "# Rebuilding entry " . $_[0]->id . "\n" }
842    );
843
844    ### Make ObjectAsset mappings
845    require MT::ObjectAsset;
846    my $map;
847    $entry = MT::Entry->load(1);
848    if ($entry) {
849        $map = new MT::ObjectAsset;
850        $map->blog_id($entry->blog_id);
851        $map->asset_id(1);
852        $map->object_ds($entry->datasource);
853        $map->object_id($entry->id);
854        $map->save;
855    }
856    $page = MT::Page->load(20);
857    if ($entry) {
858        $map = new MT::ObjectAsset;
859        $map->blog_id($page->blog_id);
860        $map->asset_id(2);
861        $map->object_ds($page->datasource);
862        $map->object_id($page->id);
863        $map->save;
864    }
865
866    1;
867}
868
8691;
Note: See TracBrowser for help on using the browser.