start fixing test for multi cat phenotype upload.
[sgn.git] / t / selenium2 / solgs / combine_trials.t
bloba33443dd8d5fd75460cd1a867817f74f3c47454a
2 use strict;
4 use lib 't/lib';
6 use Test::More;
7 use SGN::Test::WWW::WebDriver;
8 use SGN::Test::Fixture;
9 use SGN::Test::solGSData;
11 my $d = SGN::Test::WWW::WebDriver->new();
12 my $f = SGN::Test::Fixture->new();
14 my $solgs_data = SGN::Test::solGSData->new({'fixture' => $f, 'accessions_list_subset' => 60, 'plots_list_subset' => 60});
15 my $cache_dir = $solgs_data->site_cluster_shared_dir();
17 my $accessions_list =  $solgs_data->load_accessions_list();
18 my $accessions_list_name = $accessions_list->{list_name};
19 my $accessions_list_id = 'list_' . $accessions_list->{list_id};
21 my $plots_list =  $solgs_data->load_plots_list();
22 my $plots_list_name = $plots_list->{list_name};
23 my $plots_list_id = 'list_' . $plots_list->{list_id};
25 my $trials_list =  $solgs_data->load_trials_list();
26 my $trials_list_name = $trials_list->{list_name};
27 my $trials_list_id = 'list_' . $trials_list->{list_id};
29 my $trials_dt = $solgs_data->load_trials_dataset();
30 my $trials_dt_name = $trials_dt->{dataset_name};
31 my $trials_dt_id = 'dataset_' . $trials_dt->{dataset_id};
33 my $accessions_dt = $solgs_data->load_accessions_dataset();
34 my $accessions_dt_name = $accessions_dt->{dataset_name};
35 my $accessions_dt_id = 'dataset_' . $accessions_dt->{dataset_id};
37 my $plots_dt = $solgs_data->load_plots_dataset();
38 my $plots_dt_name = $plots_dt->{dataset_name};
39 my $plots_dt_id = 'dataset_' . $plots_dt->{dataset_id};
41 print STDERR "\ntrials dt: $trials_dt_name -- $trials_dt_id\n";
42 print STDERR "\naccessions dt: $accessions_dt_name -- $accessions_dt_id\n";
43 print STDERR "\nplots dt: $plots_dt_name -- $plots_dt_id\n";
45 print STDERR "\ntrials list: $trials_list_name -- $trials_list_id\n";
46 print STDERR "\naccessions list: $accessions_list_name -- $accessions_list_id\n";
47 print STDERR "\nplots list: $plots_list_name -- $plots_list_id\n";
50 `rm -r $cache_dir`;
53 $d->while_logged_in_as("submitter", sub {
54     $d->get_ok('/solgs', 'solgs home page');
55     sleep(2);
56     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
57     sleep(2);
58     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
59     sleep(1);
60     $d->find_element_ok('population_search_entry', 'id', 'population search form')->clear();
61     sleep(2);
62     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 nacrri');
63     sleep(5);
64     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
65     sleep(5);
67     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
68     sleep(2);
69     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
70     sleep(2);
71     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
72     sleep(2);
73     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
74     sleep(3);
75     $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
76     sleep(2);
77     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('combined trials');
78     sleep(2);
79         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
80         sleep(2);
81     $d->find_element_ok('submit_job', 'id', 'submit')->click();
82     sleep(200);
83     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
84     sleep(3);
87     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
88     sleep(2);
89     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
90     sleep(3);
91     $d->find_element_ok('population_search_entry', 'id', 'population search form')->clear();
92     sleep(2);
93     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 nacrri');
94     sleep(5);
95     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
96     sleep(5);
98     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
99     sleep(3);
100     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
101     sleep(3);
102     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
103     sleep(3);
104     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
105     sleep(20);
107 # $d->get('/solgs/populations/combined/2804608595/gp/1', 'combo trials tr pop page');
108    # sleep(4);
110     $d->find_element_ok('Genotype data', 'partial_link_text',  'download training pop genotype data');
111     sleep(3);
112     $d->find_element_ok('Phenotype data', 'partial_link_text',  'download training pop phenotype data');
113     sleep(3);
115     $d->find_element_ok('dry matter', 'partial_link_text',  'build model')->click();
116     sleep(3);
117     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
118     sleep(2);
119     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('Test DMCP model combo');
120     sleep(2);
121         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
122         sleep(2);
123     $d->find_element_ok('submit_job', 'id', 'submit')->click();
124     sleep(350);
125     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
126     sleep(5);
127     $d->find_element_ok('dry matter', 'partial_link_text',  'build model')->click();
128     sleep(40);
130     ### combined trials training population: single trait prediction of trial type selection population
132     #$d->get('/solgs/model/combined/populations/2804608595/trait/70741/gp/1', 'combo trials tr pop page');
133    # sleep(2);
135    my $sel_pred = $d->find_element('Model accuracy statistics', 'partial_link_text', 'scroll to accuracy');
136     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
137     sleep(2);
138     $d->find_element_ok('Download model accuracy', 'partial_link_text',  'download accuracy');
139     sleep(3);
141     my $sel_pred = $d->find_element('GEBVs vs observed', 'partial_link_text', 'scroll to GEBvs');
142     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
143     sleep(5);
144     $d->find_element_ok('download_gebvs_histo_plot', 'id',  'download gebvs');
145     sleep(3);
147    my $sel_pred = $d->find_element('GEBVs vs observed', 'partial_link_text', 'scroll to GEBvs');
148    my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
149    sleep(2);
150    $d->find_element_ok('save_gebvs', 'id',  'store gebvs')->click();
151    sleep(120);
152    $d->find_element_ok('View stored GEBVs', 'partial_link_text',  'view store gebvs')->click();
153    sleep(20);
155    $d->driver->go_back();
156    sleep(15);
157   
158     my $sel_pred = $d->find_element('Marker effects', 'partial_link_text', 'scroll to marker effects');
159     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
160     sleep(2);
161     $d->find_element_ok('Marker effects', 'partial_link_text', 'expand marker effects')->click();
162     sleep(2);
163     $d->find_element_ok('Download marker', 'partial_link_text',  ' download marker effects');
164     sleep(3);
166     my $download = $d->find_element('Download data', 'partial_link_text', 'download model data section');
167     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $download);
168     sleep(2);
169     $d->find_element_ok('Genotype data', 'partial_link_text',  'download model genotype data');
170     sleep(3);
171     $d->find_element_ok('Phenotype data', 'partial_link_text',  'download model phenotype data');
172     sleep(3);
174         my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
175         my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
176         $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 NaCRRI');
177         sleep(5);
178         $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
179         sleep(100);
180         $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click training pop')->click();
181         sleep(5);
182         $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
183         sleep(2);
184         $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('Test DMCP selection pred combo trials model');
185         sleep(2);
186         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
187         sleep(2);
188         $d->find_element_ok('submit_job', 'id', 'submit')->click();
189         sleep(360);
190         $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
191         sleep(5);
193         my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
194         my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
195         sleep(5);
196         $d->find_element_ok('DMCP', 'partial_link_text', 'go back')->click();
197         sleep(5);
199         my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
200     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
201     sleep(2);
202     $d->find_element_ok('save_gebvs', 'id',  'store gebvs')->click();
203     sleep(120);
204     $d->find_element_ok('View stored GEBVs', 'partial_link_text',  'view store gebvs')->click();
205     sleep(20);
206     $d->driver->go_back();
207     sleep(15);
208         $d->driver->go_back();
210     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
211     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
212     sleep(5);
213     
214     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
215     sleep(5);
216     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
217     sleep(2);
218     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('clones list sel pred');
219     sleep(2);
220         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
221         sleep(2);
222     $d->find_element_ok('submit_job', 'id', 'submit')->click();
223     sleep(200);
225     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
226     sleep(5);
228     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
229     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
230     sleep(5);
231     
232     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
233     sleep(3);
234     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "DMCP")]', 'xpath', 'click list sel pred')->click();
235     sleep(10);
237         my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
238     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
239     sleep(2);
240     $d->find_element_ok('save_gebvs', 'id',  'store gebvs')->click();
241     sleep(120);
242     $d->find_element_ok('View stored GEBVs', 'partial_link_text',  'view store gebvs')->click();
243     sleep(20);
245     $d->driver->go_back();
246     sleep(15);
247         $d->driver->go_back();
248         sleep(10);
250     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
251     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
252     sleep(5);
253     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'dataset accession sel pred')->click();
254     sleep(5);
255     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
256     sleep(2);
257     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('dataset clones sel pred');
258     sleep(2);
259         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
260         sleep(2);
261     $d->find_element_ok('submit_job', 'id', 'submit')->click();
262     sleep(200);
263     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
264     sleep(5);
266     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
267     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
268     sleep(5);
269     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'dataset accessions sel pred')->click();
270     sleep(3);
271     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "DMCP")]', 'xpath', 'dataset accessions sel pred')->click();
272     sleep(10);
274 #$d->get('/solgs/combined/model/2804608595/selection/dataset_5/trait/70741/gp/1', 'combo trials tr pop page');
276         my $sel_pred = $d->find_element('Expected genetic gain', 'partial_link_text', 'scroll to GEBvs');
277     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-200);", $sel_pred);
278     sleep(2);
279     $d->find_element_ok('save_gebvs', 'id',  'store gebvs')->click();
280     sleep(120);
281     $d->find_element_ok('View stored GEBVs', 'partial_link_text',  'view store gebvs')->click();
282     sleep(20);
284     $d->driver->go_back();
285     sleep(5);
286     # $d->driver->go_back();
287         # sleep(10);
288     # $d->driver->go_back();
289         # sleep(10);
290         $d->find_element_ok('Training population 280', 'partial_link_text', 'back to model page')->click();
291     sleep(5);
292         $d->find_element_ok('Training population 280', 'partial_link_text', 'back to training pop page')->click();
293         sleep(5);
295     #$d->get('/solgs/populations/combined/2804608595/gp/1', 'combo trials tr pop page');
297     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
298     sleep(1);
299     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
300     sleep(1);
301     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
302     sleep(10);
303     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
304     sleep(2);
305     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('Test DMCP-FRW modeling combo trials');
306     sleep(2);
307         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
308         sleep(2);
309     $d->find_element_ok('submit_job', 'id', 'submit')->click();
310     sleep(250);
311     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
312     sleep(3);
313     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
314     sleep(3);
315     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
316     sleep(3);
317     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
318     sleep(5);
320     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 NaCRRI');
321     sleep(5);
322     $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
323     sleep(20);
324     $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click training pop')->click();
325     sleep(5);
326     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
327     sleep(2);
328     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('Test DMCP-FRW selection pred naccri');
329     sleep(2);
330         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
331         sleep(2);
332     $d->find_element_ok('submit_job', 'id', 'submit')->click();
333     sleep(200);
334     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
335     sleep(5);
337         #$d->get_ok('/solgs/models/combined/trials/2804608595/traits/1971973596/gp/1');
339         sleep(5);
340     $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "FRW")]', 'xpath', 'go back')->click();
341     sleep(5);
342         $d->driver->go_back();
343         sleep(3);
345     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
346     sleep(5);
347     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
348     sleep(2);
349     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('clones list dmc-frw sel pred');
350     sleep(2);
351         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
352         sleep(2);
353     $d->find_element_ok('submit_job', 'id', 'submit')->click();
354     sleep(200);
356     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
357     sleep(5);
359     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
360     sleep(3);
361     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[contains(text(), "FRW")]', 'xpath', 'click list sel pred')->click();
362     sleep(5);
364     $d->driver->go_back();
365     sleep(5);
367     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
368     sleep(5);
369     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
370     sleep(2);
371     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('dataset clones sel pred2');
372     sleep(2);
373         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
374         sleep(2);
375     $d->find_element_ok('submit_job', 'id', 'submit')->click();
376     sleep(200);
377     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
378     sleep(3);
380     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
381     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
382     sleep(5);
383     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "Predict")]', 'xpath', 'click list sel pred')->click();
384     sleep(3);
385     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[contains(text(), "FRW")]', 'xpath', 'click list sel pred')->click();
386     sleep(10);
388     `rm -r $cache_dir`;
390     $d->get_ok('/solgs', 'solgs home page');
391     sleep(2);
393     my $tr_search= $d->find_element('search for a trait', 'partial_link_text', 'scroll trait search');
394     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $tr_search);
395     sleep(5);
396     $d->find_element_ok('search for a trait', 'partial_link_text', 'trait search')->click();
397     sleep(5);
398     $d->find_element_ok('search_trait_entry', 'id', 'trait search form')->send_keys('dry matter');
399     sleep(5);
400     $d->find_element_ok('search_trait', 'id', 'search for gs trait')->click();
401     sleep(5);
402     $d->find_element_ok('dry matter', 'partial_link_text', 'trait earch results')->click();
403     sleep(10);
406     $d->find_element_ok('//table[@id="all_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
407     sleep(2);
408     $d->find_element_ok('//table[@id="all_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
409     sleep(2);
410     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
411     sleep(3);
412     $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
413     sleep(2);
414     $d->find_element_ok('analysis_name', 'id', 'analysis name')->send_keys('combined trait trials');
415     sleep(2);
416         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
417         sleep(2);
418     $d->find_element_ok('submit_job', 'id', 'submit')->click();
419     sleep(200);
420     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
421     sleep(3);
424     $d->find_element_ok('//table[@id="all_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
425     sleep(2);
426     $d->find_element_ok('//table[@id="all_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
427     sleep(2);
428     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
429     sleep(5);
431     foreach my $list_id ($trials_list_id, $accessions_list_id, $plots_list_id) {
432         $list_id =~ s/\w+_//g;
433         $solgs_data->delete_list($list_id);
434     }
436     foreach my $dataset_id ($trials_dt_id, $accessions_dt_id, $plots_dt_id) {
437         $dataset_id =~ s/\w+_//g;
438         $solgs_data->delete_dataset($dataset_id);
439     }
443 done_testing();