6 use SGN
::Test qw
/validate_urls/;
8 use Test
::More tests
=> 33;
9 use SGN
::Test
::WWW
::Mechanize
;
10 use CXGN
::GEM
::Schema
;
12 my $base_url = $ENV{SGN_TEST_SERVER
};
13 my $mech = SGN
::Test
::WWW
::Mechanize
->new;
15 $mech->with_test_level( local => sub {
17 ## First take variables for the test from the database ##
19 my @schema_list = ('gem', 'biosource', 'metadata', 'public');
20 my $schema_list = join(',', @schema_list);
21 my $set_path = "SET search_path TO $schema_list";
23 my $dbh = $mech->context()->dbc()->dbh();
25 my $schema = CXGN
::GEM
::Schema
->connect( sub { $dbh },
26 {on_connect_do
=> $set_path} );
28 ## WWW. DETAIL PAGES ###
31 ## Take a template, an experiment name and a platform name
33 my ($template_row) = $schema->resultset('GeTemplate')
36 order_by
=> {-asc
=> 'template_id'},
41 if (defined $template_row) {
43 my $template_id = $template_row->get_column('template_id');
44 my $template_name = $template_row->get_column('template_name');
46 $mech->get_ok("$base_url/gem/template.pl?id=$template_id");
47 $mech->content_like(qr/Expression Template: $template_name/);
48 $mech->content_unlike( qr/ERROR PAGE/ );
50 $mech->get_ok("$base_url/gem/template.pl?name=$template_name");
51 $mech->content_like(qr/Expression Template: $template_name/);
52 $mech->content_unlike( qr/ERROR PAGE/ );
57 my ($experiment_row) = $schema->resultset('GeExperiment')
60 order_by
=> {-asc
=> 'experiment_id'},
65 if (defined $experiment_row) {
67 my $experiment_id = $experiment_row->get_column('experiment_id');
68 my $experiment_name = $experiment_row->get_column('experiment_name');
70 $mech->get_ok("$base_url/gem/experiment.pl?id=$experiment_id");
71 $mech->content_unlike( qr/ERROR PAGE/ );
72 $mech->content_like( qr/Expression Experiment: $experiment_name/ );
74 $mech->get_ok("$base_url/gem/experiment.pl?name=$experiment_name");
75 $mech->content_unlike( qr/ERROR PAGE/ );
76 $mech->content_like( qr/Expression Experiment: $experiment_name/ );
78 $mech->get_ok("$base_url/gem/experiment.pl?name=foob");
79 $mech->content_unlike( qr/ERROR PAGE/ );
80 $mech->content_like( qr/No experiment data for the specified parameters/);
85 my ($platform_row) = $schema->resultset('GePlatform')
88 order_by
=> {-asc
=> 'platform_id'},
93 if (defined $platform_row) {
95 my $platform_id = $platform_row->get_column('platform_id');
96 my $platform_name = $platform_row->get_column('platform_name');
98 $mech->get_ok("$base_url/gem/platform.pl?name=$platform_name");
99 $mech->content_like(qr/Expression Platform: $platform_name/);
100 $mech->content_unlike( qr/ERROR PAGE/ );
102 $mech->get_ok("$base_url/gem/platform.pl?id=$platform_id");
103 $mech->content_like(qr/Expression Platform: $platform_name/);
104 $mech->content_unlike( qr/ERROR PAGE/ );
107 ## EXPERIMENTAL DESIGN ##
109 my ($experimental_design_row) = $schema->resultset('GeExperimentalDesign')
112 order_by
=> {-asc
=> 'experimental_design_id'},
117 if (defined $experimental_design_row) {
119 my $expdesign_id = $experimental_design_row->get_column('experimental_design_id');
120 my $expdesign_name = $experimental_design_row->get_column('experimental_design_name');
122 $mech->get_ok("$base_url/gem/experimental_design.pl?id=$expdesign_id");
123 $mech->content_like(qr/Expression Experimental Design:\s+$expdesign_name/);
124 $mech->content_unlike( qr/ERROR PAGE/ );
126 $mech->get_ok("$base_url/gem/experimental_design.pl?name=$expdesign_name");
127 $mech->content_like(qr/Expression Experimental Design:\s+$expdesign_name/);
128 $mech->content_unlike( qr/ERROR PAGE/ );
133 my ($target_row) = $schema->resultset('GeTarget')
136 order_by
=> {-asc
=> 'target_id'},
141 if (defined $target_row) {
143 my $target_id = $target_row->get_column('target_id');
144 my $target_name = $target_row->get_column('target_name');
146 $mech->get_ok("$base_url/gem/target.pl?name=$target_name");
147 $mech->content_like(qr/Expression Target: $target_name/);
148 $mech->content_unlike( qr/ERROR PAGE/ );
150 $mech->get_ok("$base_url/gem/target.pl?id=$target_id");
151 $mech->content_like(qr/Expression Target: $target_name/);
152 $mech->content_unlike( qr/ERROR PAGE/ );