add some RTL and bidi testing data
[scpubgit/stemmaweb.git] / script / maketestdb.pl
CommitLineData
9a3fb143 1#!/usr/bin/env perl
2
3use strict;
4use warnings;
5use feature 'say';
6use Text::Tradition;
7use Text::Tradition::Directory;
8
9my $DBDIR = 'db';
10my $DBNAME = 'traditions.db';
11my $DBEXT = 'test';
bfaf51f3 12# Make the directory on the filesystem if necessary
13unless( -d $DBDIR ) {
14 mkdir $DBDIR
15 or die "Could not make database director $DBDIR";
16 say "Created directory for test database";
17}
18# Delete the old db if it exists
9a3fb143 19if( -f "$DBDIR/$DBNAME.$DBEXT" ) {
20 unlink( "$DBDIR/$DBNAME.$DBEXT" );
21}
22if( -l "$DBDIR/$DBNAME" ) {
23 unlink( "$DBDIR/$DBNAME" );
24} elsif( -e "$DBDIR/$DBNAME" ) {
25 unlink( "$DBDIR/$DBNAME.bak" ) if -f "$DBDIR/$DBNAME.bak";
26 rename( "$DBDIR/$DBNAME", "$DBDIR/$DBNAME.bak" )
27 or die "Could not rename existing $DBNAME";
28}
29# Set up the test directory
30symlink( "$DBNAME.$DBEXT", "$DBDIR/$DBNAME" ) or die "Could not set up testing db symlink";
31
32my $dir = Text::Tradition::Directory->new(
33 dsn => "dbi:SQLite:dbname=$DBDIR/$DBNAME",
34 extra_args => { create => 1 }
35 );
36my $scope = $dir->new_scope();
bfaf51f3 37say "Created test database";
9a3fb143 38
39# Create users
40my $user = $dir->add_user({ username => 'user@example.org', password => 'UserPass' });
41my $admin = $dir->add_user({ username => 'admin@example.org',
42 password => 'AdminPass', role => 'admin' });
c13343b3 43my $openid_user = $dir->create_user({
44 url => 'https://www.google.com/accounts/o8/id?id=AItOawlFTlpuHGcI67tqahtw7xOod9VNWffB-Qg',
45 extensions => {'http://openid.net/srv/ax/1.0' => { 'value.email' =>'openid@example.org' } },
85990daf 46 });
47die "Failed to create test users" unless $user && $admin && $openid_user;
9a3fb143 48say "Created users";
49
50my $t1 = Text::Tradition->new( input => 'Self', file => 't/data/besoin.xml' );
51die "Failed to create test tradition #1" unless $t1;
532cc23b 52$t1->add_stemma( dotfile => 't/data/besoin_stemweb.dot' );
9a3fb143 53$user->add_tradition( $t1 );
32d07a98 54my $t1b = Text::Tradition->new( input => 'Self', file => 't/data/besoin.xml' );
55$t1b->add_stemma( dotfile => 't/data/besoin_stemweb.dot' );
56$openid_user->add_tradition($t1b);
9a3fb143 57$dir->store( $user );
c13343b3 58$dir->store( $openid_user );
9a3fb143 59say "Created test user tradition";
60
61my $t2 = Text::Tradition->new( input => 'Tabular', sep_char => ',',
62 file => 't/data/florilegium.csv' );
63$t2->add_stemma( dotfile => 't/data/florilegium.dot' );
64die "Failed to create test tradition #2" unless $t2;
65$t2->public( 1 );
66$dir->store( $t2 );
56e3972e 67my $t3 = Text::Tradition->new( input => 'Self', file => 't/data/john.xml' );
38d04b6d 68$t3->collation->change_direction('BI');
56e3972e 69$t3->public( 1 );
70$t3->name( 'John verse' );
38d04b6d 71$user->add_tradition( $t3 );
56e3972e 72$dir->store( $t3 );
2d6431a4 73my $t4 = Text::Tradition->new( input => 'Self', file => 't/data/collatecorr.xml' );
74$t4->public( 1 );
75$user->add_tradition( $t4 );
76$dir->store( $t4 );
38d04b6d 77my $t5 = Text::Tradition->new( input => 'Tabular', file => 't/data/arabic_snippet.csv', sep_char => ',', direction => 'RL', name => 'RTL test' );
78$user->add_tradition( $t5 );
79$dir->store( $t5 );
2d6431a4 80$dir->store( $user );
81
56e3972e 82say "Created test public traditions";
9a3fb143 83