| 9 | | my %stores = Wiki::Toolkit::TestConfig::Utilities->stores; |
| 10 | | |
| 11 | | my ($store_name, $store); |
| 12 | | while ( ($store_name, $store) = each %stores ) { |
| 13 | | SKIP: { |
| 14 | | skip "$store_name storage backend not configured for testing", 17 |
| 15 | | unless $store; |
| 16 | | |
| 17 | | print "#\n##### TEST CONFIG: Store: $store_name\n#\n"; |
| 18 | | |
| 19 | | my $wiki = Wiki::Toolkit->new( store => $store ); |
| | 10 | while ( my $wiki = $iterator->new_wiki ) { |
| | 11 | print "#\n##### TEST CONFIG: Store: " . (ref $wiki->store) . "\n"; |
| | 12 | |
| | 13 | # Add test data |
| | 14 | $wiki->write_node( "Jerusalem Tavern", |
| | 15 | "Pub in Clerkenwell with St Peter's beer.", |
| | 16 | undef, |
| | 17 | { category => [ "Pubs" ] |
| | 18 | } |
| | 19 | ); |
| | 20 | |
| | 21 | my %j1 = $wiki->retrieve_node( "Jerusalem Tavern"); |
| | 22 | |
| | 23 | $wiki->write_node( "Jerusalem Tavern", |
| | 24 | "Tiny pub in Clerkenwell with St Peter's beer. |
| | 25 | Near Farringdon station", |
| | 26 | $j1{checksum}, |
| | 27 | { category => [ "Pubs" ] |
| | 28 | } |
| | 29 | ); |
| | 30 | |
| | 31 | my %j2 = $wiki->retrieve_node( "Jerusalem Tavern"); |
| | 32 | |
| | 33 | $wiki->write_node( "Jerusalem Tavern", |
| | 34 | "Tiny pub in Clerkenwell with St Peter's beer. |
| | 35 | Near Farringdon station", |
| | 36 | $j2{checksum}, |
| | 37 | { category => [ "Pubs", "Real Ale" ], |
| | 38 | locale => [ "Farringdon" ] |
| | 39 | } |
| | 40 | ); |
| | 41 | |
| | 42 | my %j3 = $wiki->retrieve_node( "Jerusalem Tavern"); |
| | 43 | |
| | 44 | $wiki->write_node( "Jerusalem Tavern", |
| | 45 | "Tiny pub in Clerkenwell with St Peter's beer but no food. |
| | 46 | Near Farringdon station", |
| | 47 | $j3{checksum}, |
| | 48 | { category => [ "Pubs", "Real Ale" ], |
| | 49 | locale => [ "Farringdon" ] |
| | 50 | } |
| | 51 | ); |
| | 52 | |
| | 53 | $wiki->write_node( "IvorW", |
| | 54 | " |
| | 55 | In real life: Ivor Williams |
| | 56 | |
| | 57 | Ideas & things to work on: |
| | 58 | |
| | 59 | * Threaded discussion wiki |
| | 60 | * Generify diff |
| | 61 | * SuperSearch for Wiki::Toolkit |
| | 62 | * Authentication module |
| | 63 | * Autoindex generation |
| | 64 | ", |
| | 65 | undef, |
| | 66 | { username => 'Foo', |
| | 67 | metatest => 'Moo' }, |
| | 68 | ); |
| | 69 | |
| | 70 | my %i1 = $wiki->retrieve_node( "IvorW"); |
| | 71 | |
| | 72 | $wiki->write_node( "IvorW", |
| | 73 | $i1{content}." |
| | 74 | [[IvorW's Test Page]]\n", |
| | 75 | $i1{checksum}, |
| | 76 | { username => 'Bar', |
| | 77 | metatest => 'Boo' }, |
| | 78 | ); |
| | 79 | |
| | 80 | my %i2 = $wiki->retrieve_node( "IvorW"); |
| | 81 | |
| | 82 | $wiki->write_node( "IvorW", |
| | 83 | $i2{content}." |
| | 84 | [[Another Test Page]]\n", |
| | 85 | $i2{checksum}, |
| | 86 | { username => 'Bar', |
| | 87 | metatest => 'Quack' }, |
| | 88 | ); |
| | 89 | |
| | 90 | my %i3 = $wiki->retrieve_node( "IvorW"); |
| | 91 | my $newcont = $i3{content}; |
| | 92 | $newcont =~ s/\n/ \n/s; |
| | 93 | $wiki->write_node( "IvorW", |
| | 94 | $newcont, |
| | 95 | $i3{checksum}, |
| | 96 | { username => 'Bar', |
| | 97 | metatest => 'Quack' }, |
| | 98 | ); |
| | 99 | |
| | 100 | $wiki->write_node( "Test", |
| | 101 | "a", |
| | 102 | undef, |
| | 103 | { }, |
| | 104 | ); |
| | 105 | |
| | 106 | %i3 = $wiki->retrieve_node( "Test"); |
| | 107 | |
| | 108 | $wiki->write_node( "Test", |
| | 109 | "a\n", |
| | 110 | $i3{checksum}, |
| | 111 | { }, |
| | 112 | ); |
| | 113 | |
| | 114 | pass "backend primed with test data"; |
| | 115 | |
| | 116 | # Real tests |