start fixing test for multi cat phenotype upload.
[sgn.git] / t / selenium2 / tools / label_designer.t
blobdaef1b1941f48b5e832c145bd753ec92aaba3c69
1 use lib 't/lib';
3 use Test::More;
4 use SGN::Test::WWW::WebDriver;
5 use SGN::Test::Fixture;
6 use Selenium::Remote::WDKeys 'KEYS';
7 use Data::Dumper;
9 my $f = SGN::Test::Fixture->new();
11 my $t = SGN::Test::WWW::WebDriver->new();
13 $t->while_logged_in_as("submitter", sub {
14     sleep(2);
16     $t->get_ok('/tools/label_designer');
18     sleep(3);
20     $t->driver->find_element("//button[\@title='Select a data source for the labels']")->click();
22     sleep(3);
24     $t->driver->find_element("//li[\@data-original-index='5']")->click();
26     sleep(180);
28     $t->find_element_ok(
29         '//select[@id="label_designer_data_level"]',
30         "xpath",
31         "select a data level")->click();
32     sleep(2);
34     $t->find_element_ok(
35         '//select[@id="label_designer_data_level"]/option[@value="plots"]',
36         "xpath",
37         "select a data level")->click();
39     $t->wait_for_working_dialog();
41     $t->driver->find_element("select_datasource_button","id", "click next")->click();
43     sleep(12);
45     $t->find_element_ok("page_format", "id", "select a page format")->click();
46     sleep(1);
47     $t->find_element_ok(
48         '//select[@id="page_format"]/option[contains(text(), "US Letter PDF")]',
49         "xpath",
50         "select a page format 'US Letter PDF'")->click();
51     sleep(1);
54     $t->find_element_ok("label_format", "id", "select a label format")->click();
55     sleep(1);
56     $t->find_element_ok(
57         '//select[@id="label_format"]/option[contains(text(), \'1" x 2 5/8"\')]',
58         "xpath",
59         "select a label format '1\" x 2 5/8\"'")->click();
60     sleep(1);
62     sleep(10);
64     $t->driver->find_element("select_layout_button","id", "click next")->click();
66     sleep(3);
68     $t->find_element_ok("d3-add-type-input", "id", "select a text element type")->click();
69     sleep(1);
70     $t->find_element_ok(
71         '//select[@id="d3-add-type-input"]/option[contains(text(), "Text (PDF)")]',
72         "xpath",
73         "select a text element 'Text (PDF)'")->click();
74     sleep(1);
76     sleep(1);
78     $t->driver->find_element("//select[\@id='d3-add-field-input']")->click();
80     sleep(3);
82     $t->find_element_ok("d3-add-field-input", "id", "select a text element field")->click();
83     sleep(1);
84     $t->find_element_ok(
85         '//select[@id="d3-add-field-input"]/option[contains(text(), "accession_name")]',
86         "xpath",
87         "select a text element 'accession_name'")->click();
89     sleep(1);
91     my $size_input = $t->find_element_ok("d3-add-size-input", "id", "clear size field");
92     $size_input->send_keys(KEYS->{'control'}, 'a');
93     $size_input->send_keys(KEYS->{'backspace'});
95     sleep(1);
97     $size_input->send_keys('64');
99     sleep(1);
101     $t->find_element_ok("d3-add-font-input", "id", "select a text element font")->click();
102     sleep(1);
103     $t->find_element_ok(
104         '//select[@id="d3-add-font-input"]/option[@value="Times-Bold"]',
105         "xpath",
106         "select a text font 'Times-Bold'")->click();
108     sleep(1);
110     $t->find_element_ok("d3-add", "id", "add text")->click();
112     sleep(1);
114     $t->find_element_ok("d3-add-type-input", "id", "select a QRcode element type")->click();
115     sleep(1);
116     $t->find_element_ok(
117         '//select[@id="d3-add-type-input"]/option[contains(text(), "2D Barcode (QRCode)")]',
118         "xpath",
119         "select a type input as '2D Barcode (QRCode)'")->click();
121     sleep(1);
123     $t->driver->find_element("//select[\@id='d3-add-field-input']")->click();
124     sleep(1);
125     $t->find_element_ok(
126         '//select[@id="d3-add-field-input"]/option[text()="plot_name"]',
127         "xpath",
128         "select a field as 'plot_name'")->click();
130     sleep(1);
132     $t->find_element_ok("d3-add-size-input", "id", "select a QRcode element size")->click();
133     sleep(1);
134     $t->find_element_ok(
135         '//select[@id="d3-add-size-input"]/option[@value="6"]',
136         "xpath",
137         "select a text font size to '6'")->click();
139     sleep(1);
141     $t->find_element_ok("d3-add", "id", "add QRcode")->click();
143     sleep(2);
145     $t->find_element_ok("element1", "id", "click on new QRcode element")->click();
147     sleep(1);
149     $t->find_element_ok("d3-add-type-input", "id", "select a  custom element type")->click();
150     sleep(1);
151     $t->find_element_ok(
152         '//select[@id="d3-add-type-input"]/option[contains(text(), "Text (PDF)")]',
153         "xpath",
154         "select a text element 'Text (PDF)'")->click();
155     sleep(1);
157     $t->find_element_ok("d3-custom-field", "id", "add custom element")->click();
159     sleep(1);
161     $t->find_element_ok("d3-custom-input", "id", "add custom element text")->send_keys('Plot: ');
163     sleep(1);
165     $t->driver->find_element("//select[\@id='d3-custom-add-field-input']")->click();
167     sleep(1);
169     $t->find_element_ok("d3-custom-add-field-input", "id", "add custom element field")->click();
170     sleep(1);
171     $t->find_element_ok(
172         '//select[@id="d3-custom-add-field-input"]/option[text()="plot_number"]',
173         "xpath",
174         "select field input as 'plot_number'")->click();
175     sleep(1);
177     $t->find_element_ok("d3-custom-field-save", "id", "add custom element save")->click();
179     sleep(1);
181     $size_input = $t->find_element_ok("d3-add-size-input", "id", "clear size field");
182     $size_input->send_keys(KEYS->{'control'}, 'a');
183     $size_input->send_keys(KEYS->{'backspace'});
184     $size_input->send_keys('48');
186     sleep(1);
188     $t->find_element_ok("d3-add-font-input", "id", "select a custom element font")->click();
189     sleep(1);
190     $t->find_element_ok(
191         '//select[@id="d3-add-font-input"]/option[@value="Times"]',
192         "xpath",
193         "select a text font size to '6'")->click();
194     sleep(1);
197     sleep(1);
199     $t->find_element_ok("d3-add", "id", "add custom element")->click();
201     sleep(2);
203     $t->find_element_ok("element2", "id", "click on new custom element")->click();
205     sleep(12);
207     #save to list, reload page
208     $t->find_element_ok("design_label_button", "id", "click on next")->click();
210     sleep(1);
212     $t->find_element_ok("save_design_name", "id", "enter list name")->send_keys('test_label');
214     sleep(3);
216     $t->find_element_ok("d3-save-button", "id", "save test label")->click();
218     sleep(3);
220     $t->driver->accept_alert();
222     #load design from saved list, check to make sure elements exist
224     $t->get_ok('/tools/label_designer');
226     sleep(3);
228     $t->driver->find_element("//button[\@title='Select a data source for the labels']")->click();
230     sleep(3);
232     $t->driver->find_element("//li[\@data-original-index='5']")->click();
234     sleep(12);
236     $t->find_element_ok("label_designer_data_level","id", "select a data level")->click();
237     sleep(1);
238     $t->find_element_ok(
239         '//select[@id="label_designer_data_level"]/option[@value="plots"]',
240         "xpath",
241         "select a data level")->click();
243     $t->wait_for_working_dialog();
245     $t->driver->find_element("select_datasource_button","id", "click next")->click();
247     sleep(3);
249     $t->find_element("//input[\@value='saved']")->click();
251     sleep(12);
253     $t->driver->find_element("design_list_list_select","id", "click on saved options")->click();
255     sleep(6);
257     $t->find_element_ok("design_list_list_select","id", "click on saved test label option")->click();
258     sleep(1);
259     $t->find_element_ok(
260         '//select[@id="design_list_list_select"]/option[text()="test_label"]',
261         "xpath",
262         "select a data level")->click();
264     sleep(12);
266     #find loaded element
267     # TODO : better test after load
268     # $t->find_element_ok("element2", "id", "click on new custom element")->click();
269     # sleep(1);
270     }
273 done_testing();