implementing a test for multi-categories parsing check feature.
[sgn.git] / t / selenium2 / solgs / kinship.t
blob40d9d2dfb151680ea8d813f63b13af621c06a953
1 use strict;
3 use lib 't/lib';
5 use Test::More;
6 use SGN::Test::WWW::WebDriver;
7 use SGN::Test::Fixture;
8 use SGN::Test::solGSData;
10 my $d = SGN::Test::WWW::WebDriver->new();
11 my $f = SGN::Test::Fixture->new();
13 my $solgs_data = SGN::Test::solGSData->new({'fixture' => $f, 'accessions_list_subset' => 60, 'plots_list_subset' => 60});
14 my $cache_dir = $solgs_data->site_cluster_shared_dir();
16 my $accessions_list =  $solgs_data->load_accessions_list();
17 my $accessions_list_name = $accessions_list->{list_name};
18 my $accessions_list_id = 'list_' . $accessions_list->{list_id};
20 my $trials_list =  $solgs_data->load_trials_list();
21 my $trials_list_name = $trials_list->{list_name};
22 my $trials_list_id = 'list_' . $trials_list->{list_id};
24 my $trials_dt = $solgs_data->load_trials_dataset();
25 my $trials_dt_name = $trials_dt->{dataset_name};
26 my $trials_dt_id = 'dataset_' . $trials_dt->{dataset_id};
28 my $accessions_dt = $solgs_data->load_accessions_dataset();
29 my $accessions_dt_name = $accessions_dt->{dataset_name};
30 my $accessions_dt_id = 'dataset_' . $accessions_dt->{dataset_id};
32 print STDERR "\ntrials dt: $trials_dt_name -- $trials_dt_id\n";
33 print STDERR "\naccessions dt: $accessions_dt_name -- $accessions_dt_id\n";
35 print STDERR "\ntrials list: $trials_list_name -- $trials_list_id\n";
36 print STDERR "\naccessions list: $accessions_list_name -- $accessions_list_id\n";
39 `rm -r $cache_dir`;
41 $d->while_logged_in_as("submitter", sub {
42     sleep(2);
43     $d->get_ok('/kinship/analysis', 'kinship home page');
44     sleep(5);
46     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- accesions list')->click();
47     sleep(2);
48     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
49     sleep(200);
51     my $sel = $d->find_element('//*[contains(text(), "Previous")]', 'xpath', 'scroll up');
52     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0, -50);", $sel);
53     sleep(2);
54     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check plot output')->click();
55     sleep(4);
56     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output download')->click();
57     sleep(3);
59     $d->driver->refresh();
60     sleep(3);
62     $d->find_element_ok('//tr[@id="' . $trials_list_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- trials list')->click();
63     sleep(4);
64     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
65     sleep(200);
66     my $sel = $d->find_element('//*[contains(text(), "Previous")]', 'xpath', 'scroll up');
67     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0, -50);", $sel);
68     sleep(2);
69     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check plot output')->click();
70     sleep(4);
71     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output download')->click();
72     sleep(3);
74     $d->driver->refresh();
75     sleep(3);
76     
77     `rm -r $cache_dir`;
78     sleep(3);
80     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -queue- accessions list')->click();
81     sleep(2);
82     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
83     sleep(2);
84     $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('kinship analysis');
85     sleep(2);
86     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
87         sleep(2);
88     $d->find_element_ok('submit_job', 'id', 'submit')->click();
89     sleep(200);
90     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
91     sleep(10);
92     
93     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -check queued- accessions list')->click();
94     sleep(2);
95     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
96     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, 200);", $sel);
97     sleep(2);
98     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
99     sleep(4);
100     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output')->click();
101     sleep(3);
103     $d->driver->refresh();
104     sleep(5);
106     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- accessions dataset')->click();
107     sleep(2);
108     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
109     sleep(200);
110     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
111     sleep(4);
113     $d->driver->refresh();
114     sleep(3);
116     $d->find_element_ok('//tr[@id="' . $trials_dt_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship --trials dataset')->click();
117     sleep(2);
118     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
119     sleep(200);
120     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
121     sleep(4);
123     $d->driver->refresh();
124     sleep(3);
126     `rm -r $cache_dir`;
127     sleep(3);
128     
129     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -queue- accessions dataset')->click();
130     sleep(3);
131     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
132     sleep(3);
133     $d->find_element_ok('analysis_name', 'id', 'job queueing')->send_keys('kinship analysis');
134     sleep(2);
135     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
136         sleep(2);
137     $d->find_element_ok('submit_job', 'id', 'submit')->click();
138     sleep(200);
139     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
140     sleep(3);
142     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -queued- accessions dataset')->click();
143     sleep(5);
144     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
145     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, 200);", $sel);
146     sleep(2);
147     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
148     sleep(4);
149     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output')->click();
150     sleep(3);
153     ######## trials page #######
154     $d->get_ok('/breeders/trial/139', 'trial detail home page');
155     sleep(5);
156     my $analysis_tools = $d->find_element('Analysis Tools', 'partial_link_text', 'toogle analysis tools');
157     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-50);", $analysis_tools);
158     sleep(5);
159     $d->find_element_ok('Analysis Tools', 'partial_link_text', 'toogle analysis tools')->click();
160     sleep(5);
161     my $analysis_tools = $d->find_element('Kinship', 'partial_link_text', 'toogle analysis tools');
162     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-60);", $analysis_tools);
163     sleep(2);
164     $d->find_element_ok('Kinship', 'partial_link_text', 'expand kinship')->click();
165     sleep(5);
166     $d->find_element_ok('//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- trial page')->click();
167     sleep(2);
168     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
169     sleep(200);
170     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
171     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, -100);", $sel);
172     sleep(2);
173     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check plot output')->click();
174     sleep(4);
175     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output download')->click();
176     sleep(2);
178     `rm -r $cache_dir`;
179     $d->get_ok('/solgs', 'solgs homepage');
180     sleep(4);
182     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
183     sleep(5);
184     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
185     sleep(5);
186     $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
187     sleep(5);
188     $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
189     sleep(2);
190     $d->find_element_ok('analysis_name', 'id', 'no job queueing')->send_keys('Test Kasese Tr pop');
191     sleep(2);
192     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
193         sleep(2);
194     $d->find_element_ok('submit_job', 'id', 'submit')->click();
195     sleep(200);
196     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
197     sleep(3);
199     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
200     sleep(5);
201     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
202     sleep(5);
203     $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
204     sleep(15);
206     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
207     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
208     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
209     sleep(3);
210     $d->find_element_ok('queue_job', 'id', 'no job queueing')->click();
211     sleep(2);
212     $d->find_element_ok('analysis_name', 'id', 'no job queueing')->send_keys('Test DMCP-FRW modeling  Kasese');
213     sleep(2);
214     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
215         sleep(2);
216     $d->find_element_ok('submit_job', 'id', 'submit')->click();
217     sleep(200);
218     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
219     sleep(10);
221     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
222     sleep(1);
223     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
224     sleep(1);
225     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
226     sleep(3);
228     my $analysis_tools = $d->find_element('Kinship', 'partial_link_text', 'toogle analysis tools');
229     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-50);", $analysis_tools);
230     sleep(5);
231     $d->find_element_ok('//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship')->click();
232     sleep(2);
233     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
234     sleep(200);
235     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
236     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, -100);", $sel);
237     sleep(2);
238     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
239     sleep(4);
240     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output')->click();
241     sleep(2);
243     $d->driver->refresh();
244     sleep(10);
246     my $clustering = $d->find_element('Models summary', 'partial_link_text', 'scroll up');
247     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $clustering);
248     sleep(5);
249     $d->find_element_ok('//table[@id="model_summary"]//*[contains(text(), "FRW")]', 'xpath', 'click training pop')->click();
250     sleep(5);
251     my $analysis_tools = $d->find_element('Kinship', 'partial_link_text', 'toogle analysis tools');
252     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-50);", $analysis_tools);
253     sleep(5);
254     $d->find_element_ok('//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship')->click();
255     sleep(200);
256     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
257     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, -100);", $sel);
258     sleep(2);
259     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
260     sleep(4);
261     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output')->click();
262     sleep(4);
265     #########
266     $d->get_ok('/solgs', 'solgs homepage');
267     sleep(4);
269     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
270     sleep(2);
271     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
272     sleep(1);
273     $d->find_element_ok('population_search_entry', 'id', 'population search form')->clear();
274     sleep(2);
275     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 nacrri');
276     sleep(5);
277     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
278     sleep(3);
280     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
281     sleep(2);
282     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
283     sleep(2);
284     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
285     sleep(2);
286     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
287     sleep(3);
288     $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
289     sleep(2);
290     $d->find_element_ok('analysis_name', 'id', 'no job queueing')->send_keys('combo trials tr pop');
291     sleep(2);
292     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
293         sleep(2);
294     $d->find_element_ok('submit_job', 'id', 'submit')->click();
295     sleep(200);
296     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
297     sleep(3);
300     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('Kasese solgs trial');
301     sleep(2);
302     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
303     sleep(1);
304     $d->find_element_ok('population_search_entry', 'id', 'population search form')->clear();
305     sleep(2);
306     $d->find_element_ok('population_search_entry', 'id', 'population search form')->send_keys('trial2 nacrri');
307     sleep(5);
308     $d->find_element_ok('search_training_pop', 'id', 'search for training pop')->click();
309     sleep(3);
311     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
312     sleep(2);
313     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
314     sleep(2);
315     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
316     sleep(2);
317     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
318     sleep(15);
320     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
321     sleep(1);
322     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
323     sleep(1);
324     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
325     sleep(10);
326     $d->find_element_ok('queue_job', 'id', 'no job queueing')->click();
327     sleep(2);
328     $d->find_element_ok('analysis_name', 'id', 'no job queueing')->send_keys('Test DMCP-FRW modeling combo trials');
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(300);
334     $d->find_element_ok('Go back', 'partial_link_text', 'go back')->click();
335     sleep(15);
337     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[1]/td/input', 'xpath', 'select 1st trait')->click();
338     sleep(1);
339     $d->find_element_ok('//table[@id="population_traits_list"]/tbody/tr[2]/td/input', 'xpath', 'select 2nd trait')->click();
340     sleep(1);
341     $d->find_element_ok('runGS', 'id',  'build multi models')->click();
342     sleep(10);
344     my $kin = $d->find_element('Kinship', 'partial_link_text', 'scroll up');
345     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $kin);
346     sleep(5);
347     $d->find_element_ok('//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- multi models page')->click();
348     sleep(2);
349     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
350     sleep(200);
351     my $sel = $d->find_element('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'scroll up');
352     my $elem =$d->driver->execute_script("arguments[0].scrollIntoView(true);window.scrollBy(0, -100);", $sel);
353     sleep(5);
354     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
355     sleep(4);
356     $d->find_element_ok('//div[@id="kinship_div"]//*[contains(text(), "Download")]', 'xpath', 'check output')->click();
357     sleep(2);
359     $d->driver->refresh();
360     sleep(10);
362     $d->find_element_ok('//table[@id="model_summary"]//*[contains(text(), "FRW")]', 'xpath', 'click training pop')->click();
363     sleep(5);
364     my $kin = $d->find_element('Kinship', 'partial_link_text', 'scroll up kinship section');
365     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-50);", $kin);
366     sleep(5);
367     $d->find_element_ok('//*[starts-with(@id, "run_kinship")]', 'xpath', 'run kinship -- FRW model page')->click();
368     sleep(200);
369     $d->find_element_ok('//*[contains(text(), "Diag")]', 'xpath', 'check output')->click();
370     sleep(4);
372     foreach my $list_id ($trials_list_id, $accessions_list_id) {
373         $list_id =~ s/\w+_//g;
374         $solgs_data->delete_list($list_id);
375     }
377     foreach my $dataset_id ($trials_dt_id, $accessions_dt_id) {
378         $dataset_id =~ s/\w+_//g;
379         $solgs_data->delete_dataset($dataset_id);
380     }
385 done_testing();