4 use SGN::Test::WWW::WebDriver;
5 use SGN::Test::Fixture;
6 use Selenium::Remote::WDKeys 'KEYS';
9 my $f = SGN::Test::Fixture->new();
11 my $t = SGN::Test::WWW::WebDriver->new();
13 $t->while_logged_in_as("submitter", sub {
16 $t->get_ok('/tools/label_designer');
20 $t->driver->find_element("//button[\@title='Select a data source for the labels']")->click();
24 $t->driver->find_element("//li[\@data-original-index='5']")->click();
29 '//select[@id="label_designer_data_level"]',
31 "select a data level")->click();
35 '//select[@id="label_designer_data_level"]/option[@value="plots"]',
37 "select a data level")->click();
39 $t->wait_for_working_dialog();
41 $t->driver->find_element("select_datasource_button","id", "click next")->click();
45 $t->find_element_ok("page_format", "id", "select a page format")->click();
48 '//select[@id="page_format"]/option[contains(text(), "US Letter PDF")]',
50 "select a page format 'US Letter PDF'")->click();
54 $t->find_element_ok("label_format", "id", "select a label format")->click();
57 '//select[@id="label_format"]/option[contains(text(), \'1" x 2 5/8"\')]',
59 "select a label format '1\" x 2 5/8\"'")->click();
64 $t->driver->find_element("select_layout_button","id", "click next")->click();
68 $t->find_element_ok("d3-add-type-input", "id", "select a text element type")->click();
71 '//select[@id="d3-add-type-input"]/option[contains(text(), "Text (PDF)")]',
73 "select a text element 'Text (PDF)'")->click();
78 $t->driver->find_element("//select[\@id='d3-add-field-input']")->click();
82 $t->find_element_ok("d3-add-field-input", "id", "select a text element field")->click();
85 '//select[@id="d3-add-field-input"]/option[contains(text(), "accession_name")]',
87 "select a text element 'accession_name'")->click();
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'});
97 $size_input->send_keys('64');
101 $t->find_element_ok("d3-add-font-input", "id", "select a text element font")->click();
104 '//select[@id="d3-add-font-input"]/option[@value="Times-Bold"]',
106 "select a text font 'Times-Bold'")->click();
110 $t->find_element_ok("d3-add", "id", "add text")->click();
114 $t->find_element_ok("d3-add-type-input", "id", "select a QRcode element type")->click();
117 '//select[@id="d3-add-type-input"]/option[contains(text(), "2D Barcode (QRCode)")]',
119 "select a type input as '2D Barcode (QRCode)'")->click();
123 $t->driver->find_element("//select[\@id='d3-add-field-input']")->click();
126 '//select[@id="d3-add-field-input"]/option[text()="plot_name"]',
128 "select a field as 'plot_name'")->click();
132 $t->find_element_ok("d3-add-size-input", "id", "select a QRcode element size")->click();
135 '//select[@id="d3-add-size-input"]/option[@value="6"]',
137 "select a text font size to '6'")->click();
141 $t->find_element_ok("d3-add", "id", "add QRcode")->click();
145 $t->find_element_ok("element1", "id", "click on new QRcode element")->click();
149 $t->find_element_ok("d3-add-type-input", "id", "select a custom element type")->click();
152 '//select[@id="d3-add-type-input"]/option[contains(text(), "Text (PDF)")]',
154 "select a text element 'Text (PDF)'")->click();
157 $t->find_element_ok("d3-custom-field", "id", "add custom element")->click();
161 $t->find_element_ok("d3-custom-input", "id", "add custom element text")->send_keys('Plot: ');
165 $t->driver->find_element("//select[\@id='d3-custom-add-field-input']")->click();
169 $t->find_element_ok("d3-custom-add-field-input", "id", "add custom element field")->click();
172 '//select[@id="d3-custom-add-field-input"]/option[text()="plot_number"]',
174 "select field input as 'plot_number'")->click();
177 $t->find_element_ok("d3-custom-field-save", "id", "add custom element save")->click();
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');
188 $t->find_element_ok("d3-add-font-input", "id", "select a custom element font")->click();
191 '//select[@id="d3-add-font-input"]/option[@value="Times"]',
193 "select a text font size to '6'")->click();
199 $t->find_element_ok("d3-add", "id", "add custom element")->click();
203 $t->find_element_ok("element2", "id", "click on new custom element")->click();
207 #save to list, reload page
208 $t->find_element_ok("design_label_button", "id", "click on next")->click();
212 $t->find_element_ok("save_design_name", "id", "enter list name")->send_keys('test_label');
216 $t->find_element_ok("d3-save-button", "id", "save test label")->click();
220 $t->driver->accept_alert();
222 #load design from saved list, check to make sure elements exist
224 $t->get_ok('/tools/label_designer');
228 $t->driver->find_element("//button[\@title='Select a data source for the labels']")->click();
232 $t->driver->find_element("//li[\@data-original-index='5']")->click();
236 $t->find_element_ok("label_designer_data_level","id", "select a data level")->click();
239 '//select[@id="label_designer_data_level"]/option[@value="plots"]',
241 "select a data level")->click();
243 $t->wait_for_working_dialog();
245 $t->driver->find_element("select_datasource_button","id", "click next")->click();
249 $t->find_element("//input[\@value='saved']")->click();
253 $t->driver->find_element("design_list_list_select","id", "click on saved options")->click();
257 $t->find_element_ok("design_list_list_select","id", "click on saved test label option")->click();
260 '//select[@id="design_list_list_select"]/option[text()="test_label"]',
262 "select a data level")->click();
267 # TODO : better test after load
268 # $t->find_element_ok("element2", "id", "click on new custom element")->click();