source: trunk/t/12_macros.t @ 509

Last change on this file since 509 was 509, checked in by kake, 17 years ago

@INDEX_LIST macro

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1use strict;
2use CGI::Wiki::Setup::SQLite;
3use Config::Tiny;
4use OpenGuides;
5use Test::More tests => 6;
6
7eval { require DBD::SQLite; };
8my $have_sqlite = $@ ? 0 : 1;
9
10SKIP: {
11    skip "DBD::SQLite not installed - no database to test with", 6
12      unless $have_sqlite;
13
14    # Clear out the database from any previous runs.
15    unlink "t/node.db";
16    unlink <t/indexes/*>;
17    CGI::Wiki::Setup::SQLite::setup( { dbname => "t/node.db" } );
18
19    my $config = Config::Tiny->new;
20    $config->{_} = {
21                     dbtype             => "sqlite",
22                     dbname             => "t/node.db",
23                     indexing_directory => "t/indexes",
24                     script_url         => "",
25                     script_name        => "",
26                     site_name          => "Test",
27                     template_path      => "./templates",
28                     home_name          => "Home",
29                   };
30
31    my $guide = OpenGuides->new( config => $config );
32    my $wiki = $guide->wiki;
33
34    # Test @INDEX_LINK
35    $wiki->write_node( "Test 1", "\@INDEX_LINK [[Category Foo]]" )
36      or die "Can't write node";
37    $wiki->write_node( "Test 2", "\@INDEX_LINK [[Category Bar|Bars]]" )
38      or die "Can't write node";
39
40    my $output;
41    $output = $guide->display_node(
42                                    return_output => 1,
43                                    id            => "Test 1",
44                                  );
45    like( $output, qr/View all pages in Category Foo/,
46          "\@INDEX_LINK has right default link text" );
47    $output = $guide->display_node(
48                                    return_output => 1,
49                                    id            => "Test 2",
50                                  );
51    like( $output, qr/>Bars<\/a>/, "...and can be overridden" );
52
53    # Test @INDEX_LIST
54    $wiki->write_node( "Test 3", "\@INDEX_LIST [[Category Foo]]" )
55      or die "Can't write node";
56    $wiki->write_node( "Test 4", "\@INDEX_LIST [[Locale Bar]]" )
57      or die "Can't write node";
58    $wiki->write_node( "Test 5", "\@INDEX_LIST [[Category Nonexistent]]" )
59      or die "Can't write node";
60    $wiki->write_node( "Test 6", "\@INDEX_LIST [[Locale Nonexistent]]" )
61      or die "Can't write node";
62    $wiki->write_node( "Wibble", "wibble", undef,
63                       {
64                         category => "foo",
65                         locale   => "bar",
66                       }
67                     )
68      or die "Can't write node";
69    $output = $guide->display_node(
70                                    return_output => 1,
71                                    id            => "Test 3",
72                                  );
73    like ( $output, qr|<a href=".*">Wibble</a>|,
74           '@INDEX_LIST works for categories' );
75    $output = $guide->display_node(
76                                    return_output => 1,
77                                    id            => "Test 5",
78                                  );
79    like ( $output, qr|No pages currently in category|,
80           "...and fails nicely if no pages in category" );
81    $output = $guide->display_node(
82                                    return_output => 1,
83                                    id            => "Test 4",
84                                  );
85    like ( $output, qr|<a href=".*">Wibble</a>|,
86           '@INDEX_LIST works for locales' );
87    $output = $guide->display_node(
88                                    return_output => 1,
89                                    id            => "Test 6",
90                                  );
91    like ( $output, qr|No pages currently in locale|,
92           "...and fails nicely if no pages in locale" );
93}
Note: See TracBrowser for help on using the repository browser.