root/branches/release-37/t/mt_cms_blog.t @ 2211

Revision 2211, 2.9 kB (checked in by mpaschal, 19 months ago)

More _update_finfos tests

Line 
1#!/usr/bin/perl -w
2
3use strict;
4use warnings;
5
6use lib 't/lib';
7use MT::Test qw(:db :data);
8
9use Test::More;
10
11
12plan tests => 17;
13
14{
15    diag('test MT::CMS::Blog::_update_finfos');
16
17    ok(MT->model('blog')->load(1), 'have a blog #1');
18
19    my $total_fileinfos = MT->model('fileinfo')->count({ blog_id => 1 });
20    is($total_fileinfos, 24, 'blog #1 has 24 fileinfos');
21
22    my $static_fileinfos = MT->model('fileinfo')->count({
23        blog_id => 1,
24        virtual => [ \"= 0", \"is null" ],
25    });
26    is($static_fileinfos, 24, "all blog #1's fileinfos are static");
27
28    my $mapped_fileinfos = MT->model('fileinfo')->count({
29        blog_id => 1,
30        templatemap_id => \"is not null",
31    });
32    is($mapped_fileinfos, 18, "blog #1 has 18 fileinfos for archive pages (fileinfos with template maps)");
33
34    require MT::CMS::Blog;
35    my $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1);
36
37    ok($ret, 'set all finfos virtual');
38    diag(MT->instance->errstr) if !$ret;
39    is(MT->model('fileinfo')->count({
40        blog_id => 1,
41        virtual => [ \"= 0", \"is null" ],
42    }), 0, 'no static finfos after setting all virtual');
43    is(MT->model('fileinfo')->count({
44        blog_id => 1,
45        virtual => 1,
46    }), $total_fileinfos, 'all virtual finfos after setting all virtual');
47
48    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 0);
49
50    ok($ret, 'set all finfos static again');
51    is(MT->model('fileinfo')->count({
52        blog_id => 1,
53        virtual => [ \"= 0", \"is null" ],
54    }), $total_fileinfos, 'all finfos are static after setting all static');
55    is(MT->model('fileinfo')->count({
56        blog_id => 1,
57        virtual => 1,
58    }), 0, 'no virtual finfos after setting all static');
59
60    is(MT->model('fileinfo')->count({
61        blog_id => 1,
62        id      => 1,
63    }), 1, 'blog #1 has fileinfo #1');
64
65    diag('test basic condition (not used by app)');
66    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1, { id => 1 });
67
68    ok($ret, 'set fileinfo #1 virtual');
69    is(MT->model('fileinfo')->count({
70        blog_id => 1,
71        id      => 1,
72        virtual => 1,
73    }), 1, 'fileinfo #1 is in fact virtual');
74    is(MT->model('fileinfo')->count({
75        blog_id => 1,
76        virtual => [ \"= 0", \"is null" ],
77    }), $total_fileinfos - 1, 'all fileinfos except one are static');
78
79    MT::CMS::Blog::_update_finfos(MT->instance, 0)
80        or BAIL_OUT('could not reset fileinfos after basic condition test');
81
82    diag('test template map presence as used in app');
83    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1, { templatemap_id => \"is not null" });
84
85    ok($ret, 'set fileinfos with templatemaps virtual');
86    is(MT->model('fileinfo')->count({
87        blog_id => 1,
88        templatemap_id => \"is null",
89        virtual => 1,
90    }), 0, 'no index fileinfos are virtual');
91    is(MT->model('fileinfo')->count({
92        blog_id => 1,
93        virtual => 1,
94    }), 18, '18 other fileinfos are virtual');
95}
96
971;
98
Note: See TracBrowser for help on using the browser.