7 use SGN::Test::WWW::WebDriver;
8 use SGN::Test::Fixture;
9 use SGN::Test::solGSData;
12 my $d = SGN::Test::WWW::WebDriver->new();
13 my $f = SGN::Test::Fixture->new();
15 my $solgs_data = SGN::Test::solGSData->new({'fixture' => $f, 'accessions_list_subset' => 60, 'plots_list_subset' => 60});
16 my $cache_dir = $solgs_data->site_cluster_shared_dir();
17 print STDERR "\nsite_cluster_shared_dir-- $cache_dir\n";
20 my $accessions_list = $solgs_data->load_accessions_list();
21 my $accessions_list_name = $accessions_list->{list_name};
22 my $accessions_list_id = 'list_' . $accessions_list->{list_id};
24 my $plots_list = $solgs_data->load_plots_list();
25 my $plots_list_name = $plots_list->{list_name};
26 my $plots_list_id = 'list_' . $plots_list->{list_id};
28 my $trials_list = $solgs_data->load_trials_list();
29 my $trials_list_name = $trials_list->{list_name};
30 my $trials_list_id = 'list_' . $trials_list->{list_id};
32 my $trials_dt = $solgs_data->load_trials_dataset();
33 my $trials_dt_name = $trials_dt->{dataset_name};
34 my $trials_dt_id = 'dataset_' . $trials_dt->{dataset_id};
35 my $accessions_dt = $solgs_data->load_accessions_dataset();
36 my $accessions_dt_name = $accessions_dt->{dataset_name};
37 my $accessions_dt_id = 'dataset_' . $accessions_dt->{dataset_id};
39 my $plots_dt = $solgs_data->load_plots_dataset();
40 my $plots_dt_name = $plots_dt->{dataset_name};
41 my $plots_dt_id = 'dataset_' . $plots_dt->{dataset_id};
43 print STDERR "\ntrials dt: $trials_dt_name -- $trials_dt_id\n";
44 print STDERR "\naccessions dt: $accessions_dt_name -- $accessions_dt_id\n";
45 print STDERR "\nplots dt: $plots_dt_name -- $plots_dt_id\n";
47 print STDERR "\ntrials list: $trials_list_name -- $trials_list_id\n";
48 print STDERR "\naccessions list: $accessions_list_name -- $accessions_list_id\n";
49 print STDERR "\nplots list: $plots_list_name -- $plots_list_id\n";
55 $d->while_logged_in_as("submitter", sub {
57 $d->get('/solgs', 'solgs home page');
59 $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
61 $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
63 $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
65 $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
67 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('Test Kasese Tr pop');
69 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
71 $d->find_element_ok('submit_job', 'id', 'submit')->click();
73 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
75 $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
77 $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
79 $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
82 $d->find_element_ok('Genotype data', 'partial_link_text', 'download training pop genotype data');
84 $d->find_element_ok('Phenotype data', 'partial_link_text', 'download training pop phenotype data');
87 # # #trial type training population: single trait modeling
89 $d->find_element_ok('dry matter', 'partial_link_text', 'build model')->click();
91 $d->find_element_ok('queue_job', 'id', 'no job queueing')->click();
93 $d->find_element_ok('analysis_name', 'id', 'no job queueing')->send_keys('Test DMCP model Kasese');
95 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
97 $d->find_element_ok('submit_job', 'id', 'submit')->click();
99 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
102 $d->find_element_ok('dry matter', 'partial_link_text', 'build model')->click();
105 my $sel_pred = $d->find_element('Model accuracy statistics', 'partial_link_text', 'scroll to accuracy');
106 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
108 $d->find_element_ok('Download model accuracy', 'partial_link_text', 'download accuracy');
111 my $sel_pred = $d->find_element('GEBVs vs observed', 'partial_link_text', 'scroll to GEBvs');
112 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
114 $d->find_element_ok('download_gebvs_histo_plot', 'id', 'download gebvs');
117 my $sel_pred = $d->find_element('GEBVs vs observed', 'partial_link_text', 'scroll to GEBvs');
118 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
120 $d->find_element_ok('save_gebvs', 'id', 'store gebvs')->click();
122 $d->find_element_ok('View stored GEBVs', 'partial_link_text', 'view store gebvs')->click();
125 $d->driver->go_back();
128 my $sel_pred = $d->find_element('Marker effects', 'partial_link_text', 'scroll to marker effects');
129 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
131 $d->find_element_ok('Marker effects', 'partial_link_text', 'expand marker effects')->click();
133 $d->find_element_ok('Download marker', 'partial_link_text', 'download marker effects');
136 my $download = $d->find_element('Download data', 'partial_link_text', 'download model data section');
137 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $download);
139 $d->find_element_ok('Genotype data', 'partial_link_text', 'download model genotype data');
141 $d->find_element_ok('Phenotype data', 'partial_link_text', 'download model phenotype data');
143 $d->find_element_ok('Analysis log', 'partial_link_text', 'download analysis log');
145 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
146 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
148 $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('trial2 NaCRRI');
150 $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
152 $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click training pop')->click();
154 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
156 $d->find_element_ok('analysis_name', 'id', 'fill in selection prediction job name')->send_keys('Test DMCP selection pred nacrri');
158 $d->find_element_ok('user_email', 'id', 'fill user email')->send_keys('email@email.com');
160 $d->find_element_ok('submit_job', 'id', 'submit')->click();
162 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
165 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
166 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
168 $d->find_element_ok('DMCP', 'partial_link_text', 'go back')->click();
171 my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
172 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $sel_pred);
174 $d->find_element_ok('check_genetic_gain', 'id', 'run plot genetic gain')->click();
176 $d->find_element_ok('boxplot', 'partial_link_text', 'checkout boxplot download link');
179 $d->driver->refresh();
182 my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
183 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $sel_pred);
185 $d->find_element_ok('Genotype data', 'partial_link_text', 'download selection pop genotype data');
187 $d->find_element_ok('Analysis log', 'partial_link_text', 'download analysis log');
189 $d->find_element_ok('save_gebvs', 'id', 'store gebvs')->click();
191 $d->find_element_ok('View stored GEBVs', 'partial_link_text', 'view store gebvs')->click();
194 $d->driver->go_back();
197 $d->driver->go_back();
200 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
201 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
203 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'accessions list sel pred')->click();
205 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
207 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('accessions list sel pred');
209 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
211 $d->find_element_ok('submit_job', 'id', 'submit')->click();
214 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
217 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
218 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
220 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'accessions list sel pred')->click();
222 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "DMCP")]', 'xpath', 'click list sel pred')->click();
225 my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
226 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $sel_pred);
228 $d->find_element_ok('save_gebvs', 'id', 'store gebvs')->click();
230 $d->find_element_ok('View stored GEBVs', 'partial_link_text', 'view store gebvs')->click();
233 $d->driver->go_back();
236 $d->driver->go_back();
239 #####################
240 # $d->get('/solgs/trait/70741/population/139/gp/1');
242 #####################
244 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
245 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
247 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
249 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
251 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('dataset clones sel pred');
253 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
255 $d->find_element_ok('submit_job', 'id', 'submit')->click();
257 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
260 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
261 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
264 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
266 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "DMCP")]', 'xpath', 'click list sel pred')->click();
269 my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
270 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $sel_pred);
272 $d->find_element_ok('save_gebvs', 'id', 'store gebvs')->click();
274 $d->find_element_ok('View stored GEBVs', 'partial_link_text', 'view store gebvs')->click();
277 $d->driver->go_back();
280 $d->driver->refresh();
283 $d->find_element_ok('Kasese solgs trial', 'partial_link_text', 'back to model page')->click();
285 $d->find_element_ok('Kasese solgs trial', 'partial_link_text', 'back to training pop page')->click();
288 $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
289 $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
290 $d->find_element_ok('runGS', 'id', 'build multi models')->click();
292 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
294 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('Test DMCP-FRW modeling Kasese');
296 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
298 $d->find_element_ok('submit_job', 'id', 'submit')->click();
300 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
303 #####################
304 # $d->get('/solgs/population/139/gp/1');
306 #####################
308 $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
310 $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
312 $d->find_element_ok('runGS', 'id', 'build multi models')->click();
316 $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('trial2 NaCRRI');
318 $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
320 $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click training pop')->click();
322 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
324 $d->find_element_ok('analysis_name', 'id', 'fill in job name')->send_keys('Test DMCP-FRW selection pred naccri');
326 $d->find_element_ok('user_email', 'id', 'fill in user email')->send_keys('email@email.com');
328 $d->find_element_ok('submit_job', 'id', 'submit')->click();
330 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
332 $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "FRW")]', 'xpath', 'check multi traits selection prediction ')->click();
335 $d->driver->go_back();
338 my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
339 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $sel_pred);
341 $d->find_element_ok('gg_pops_select', 'id', 'select list sl pop')->click();
343 $d->find_element_ok('//select[@id="gg_pops_select"]/option[text()="trial2 NaCRRI"]', 'xpath', 'select selection pop')->click();
345 $d->find_element_ok('check_genetic_gain', 'id', 'run plot genetic gain')->click();
347 $d->find_element_ok('boxplot', 'partial_link_text', 'check multi traits boxplot download link');
350 $d->driver->refresh();
353 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
355 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
357 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('clones list dmc-frw sel pred');
359 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
361 $d->find_element_ok('submit_job', 'id', 'submit')->click();
363 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
365 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
367 $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "FRW")]', 'xpath', 'click list sel pred')->click();
370 $d->driver->go_back();
373 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
375 $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
377 $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('dataset clones sel pred2');
379 $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
381 $d->find_element_ok('submit_job', 'id', 'submit')->click();
383 $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
386 my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
387 my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
389 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'dataset dmcp-frw pred')->click();
390 $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "FRW")]', 'xpath', 'dataset dmcp-frw pred')->click();
393 foreach my $list_id ($trials_list_id, $accessions_list_id, $plots_list_id) {
394 $list_id =~ s/\w+_//g;
395 $solgs_data->delete_list($list_id);
398 foreach my $dataset_id ($trials_dt_id, $accessions_dt_id, $plots_dt_id) {
399 $dataset_id =~ s/\w+_//g;
400 $solgs_data->delete_dataset($dataset_id);