root/branches/release-41/t/mt_cms_blog.t @ 2699

Revision 2699, 3.9 kB (checked in by mpaschal, 17 months ago)

fix count in test description too plz
(18 going on 30)
BugzID: 80147

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 => 25;
13
14{
15    diag('test MT::CMS::Blog::_update_finfos');
16
17    ok(MT->model('blog')->load(1), 'have a blog #1');
18    # This test blog has:
19    #   6 index templates
20    #   6 published entries across 6 different years
21    #   4 pages
22    #   2 placements (entry-category mappings)
23    #   individual, monthly, weekly, daily, category and page archives
24
25    sub finfos_of_type {
26        return MT->model('fileinfo')->count({ blog_id => 1, archive_type => shift });
27    }
28
29    is(finfos_of_type('index'),      6, 'blog #1 has 6 index template fileinfos');
30    is(finfos_of_type('Individual'), 6, 'blog #1 has 6 individual fileinfos');
31    is(finfos_of_type('Daily'),      6, 'blog #1 has 6 daily fileinfos');
32    is(finfos_of_type('Monthly'),    6, 'blog #1 has 6 monthly fileinfos');
33    is(finfos_of_type('Weekly'),     6, 'blog #1 has 6 weekly fileinfos');
34    is(finfos_of_type('Yearly'),     0, 'blog #1 has 0 yearly fileinfos');
35    is(finfos_of_type('Page'),       4, 'blog #1 has 4 page fileinfos');
36    is(finfos_of_type('Category'),   2, 'blog #1 has 2 category fileinfos');
37
38    my $total_fileinfos = MT->model('fileinfo')->count({ blog_id => 1 });
39    is($total_fileinfos, 36, 'blog #1 has 36 fileinfos');
40
41    my $static_fileinfos = MT->model('fileinfo')->count({
42        blog_id => 1,
43        virtual => [ \"= 0", \"is null" ],
44    });
45    is($static_fileinfos, 36, "all blog #1's fileinfos are static");
46
47    my $mapped_fileinfos = MT->model('fileinfo')->count({
48        blog_id => 1,
49        templatemap_id => \"is not null",
50    });
51    is($mapped_fileinfos, 30, "blog #1 has 30 fileinfos for archive pages (fileinfos with template maps)");
52
53    require MT::CMS::Blog;
54    my $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1);
55
56    ok($ret, 'set all finfos virtual');
57    diag(MT->instance->errstr) if !$ret;
58    is(MT->model('fileinfo')->count({
59        blog_id => 1,
60        virtual => [ \"= 0", \"is null" ],
61    }), 0, 'no static finfos after setting all virtual');
62    is(MT->model('fileinfo')->count({
63        blog_id => 1,
64        virtual => 1,
65    }), $total_fileinfos, 'all virtual finfos after setting all virtual');
66
67    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 0);
68
69    ok($ret, 'set all finfos static again');
70    is(MT->model('fileinfo')->count({
71        blog_id => 1,
72        virtual => [ \"= 0", \"is null" ],
73    }), $total_fileinfos, 'all finfos are static after setting all static');
74    is(MT->model('fileinfo')->count({
75        blog_id => 1,
76        virtual => 1,
77    }), 0, 'no virtual finfos after setting all static');
78
79    is(MT->model('fileinfo')->count({
80        blog_id => 1,
81        id      => 1,
82    }), 1, 'blog #1 has fileinfo #1');
83
84    diag('test basic condition (not used by app)');
85    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1, { id => 1 });
86
87    ok($ret, 'set fileinfo #1 virtual');
88    is(MT->model('fileinfo')->count({
89        blog_id => 1,
90        id      => 1,
91        virtual => 1,
92    }), 1, 'fileinfo #1 is in fact virtual');
93    is(MT->model('fileinfo')->count({
94        blog_id => 1,
95        virtual => [ \"= 0", \"is null" ],
96    }), $total_fileinfos - 1, 'all fileinfos except one are static');
97
98    MT::CMS::Blog::_update_finfos(MT->instance, 0)
99        or BAIL_OUT('could not reset fileinfos after basic condition test');
100
101    diag('test template map presence as used in app');
102    $ret = MT::CMS::Blog::_update_finfos(MT->instance, 1, { templatemap_id => \"is not null" });
103
104    ok($ret, 'set fileinfos with templatemaps virtual');
105    is(MT->model('fileinfo')->count({
106        blog_id => 1,
107        templatemap_id => \"is null",
108        virtual => 1,
109    }), 0, 'no index fileinfos are virtual');
110    is(MT->model('fileinfo')->count({
111        blog_id => 1,
112        virtual => 1,
113    }), 30, '30 other fileinfos are virtual');
114}
115
1161;
117
Note: See TracBrowser for help on using the browser.