1
14
15 package com.liferay.portal.tools;
16
17 import com.liferay.portal.kernel.util.CharPool;
18 import com.liferay.portal.kernel.util.FileUtil;
19 import com.liferay.portal.kernel.util.SetUtil;
20 import com.liferay.portal.kernel.util.StringBundler;
21 import com.liferay.portal.kernel.util.StringPool;
22 import com.liferay.portal.kernel.util.StringUtil;
23 import com.liferay.portal.kernel.util.UnicodeFormatter;
24 import com.liferay.portal.tools.servicebuilder.ServiceBuilder;
25 import com.liferay.portal.util.InitUtil;
26
27 import java.io.File;
28
29 import java.util.HashMap;
30 import java.util.Map;
31 import java.util.Set;
32
33 import org.apache.tools.ant.DirectoryScanner;
34
35
40 public class SeleneseToJavaBuilder {
41
42 public static void main(String[] args) throws Exception {
43 InitUtil.initWithSpring();
44
45 if (args.length == 1) {
46 new SeleneseToJavaBuilder(args[0]);
47 }
48 else {
49 throw new IllegalArgumentException();
50 }
51 }
52
53 public SeleneseToJavaBuilder(String basedir) throws Exception {
54 DirectoryScanner ds = new DirectoryScanner();
55
56 ds.setBasedir(basedir);
57 ds.setExcludes(
58 new String[] {
59 "**\\IterateThemeTest.java", "**\\StopSeleniumTest.java"
60 });
61 ds.setIncludes(new String[] {"**\\*Test.html", "**\\*Test.java"});
62
63 ds.scan();
64
65 Set<String> fileNames = SetUtil.fromArray(ds.getIncludedFiles());
66
67 for (String fileName : fileNames) {
68
69
73
81
82 if (fileName.endsWith("Test.html")) {
83 translate(basedir, fileName);
84 }
85 else if (fileName.endsWith("Test.java")) {
86 if (!fileNames.contains(
87 fileName.substring(0, fileName.length() - 5) +
88 ".html")) {
89
90 System.out.println("unused: " + fileName);
91 }
92 }
93 }
94 }
95
96 protected String fixParam(String param) {
97 StringBuilder sb = new StringBuilder();
98
99 char[] array = param.toCharArray();
100
101 for (int i = 0; i < array.length; ++i) {
102 char c = array[i];
103
104 if (c == CharPool.BACK_SLASH) {
105 sb.append("\\\\");
106 }
107 else if (c == CharPool.QUOTE) {
108 sb.append("\\\"");
109 }
110 else if (Character.isWhitespace(c)) {
111 sb.append(c);
112 }
113 else if ((c < 0x0020) || (c > 0x007e)) {
114 sb.append("\\u");
115 sb.append(UnicodeFormatter.charToHex(c));
116 }
117 else {
118 sb.append(c);
119 }
120 }
121
122 return StringUtil.replace(
123 sb.toString(), _FIX_PARAM_OLD_SUBS, _FIX_PARAM_NEW_SUBS);
124 }
125
126 protected String[] getParams(String step) throws Exception {
127 String[] params = new String[3];
128
129 int x = 0;
130 int y = 0;
131
132 for (int i = 0; i < 3; i++) {
133 x = step.indexOf("<td>", x) + 4;
134 y = step.indexOf("\n", x);
135 y = step.lastIndexOf("</td>", y);
136
137 params[i] = step.substring(x, y);
138 }
139
140 return params;
141 }
142
143 protected void translate(String basedir, String fileName) throws Exception {
144 fileName = StringUtil.replace(
145 fileName, StringPool.BACK_SLASH, StringPool.SLASH);
146
147 int x = fileName.lastIndexOf(StringPool.SLASH);
148 int y = fileName.indexOf(StringPool.PERIOD);
149
150 String testPackagePath = StringUtil.replace(
151 fileName.substring(0, x), StringPool.SLASH, StringPool.PERIOD);
152 String testName = fileName.substring(x + 1, y);
153 String testMethodName =
154 "test" + testName.substring(0, testName.length() - 4);
155 String testFileName =
156 basedir + "/" + fileName.substring(0, y) + ".java";
157
158 StringBundler sb = new StringBundler();
159
160 sb.append("package ");
161 sb.append(testPackagePath);
162 sb.append(";\n\n");
163
164 sb.append("import com.liferay.portal.kernel.util.FileUtil;\n");
165 sb.append("import com.liferay.portal.kernel.util.StringPool;\n");
166 sb.append("import com.liferay.portalweb.portal.BaseTestCase;\n\n");
167 sb.append(
168 "import com.liferay.portalweb.portal.util.RuntimeVariables;\n\n");
169
170 sb.append("public class ");
171 sb.append(testName);
172 sb.append(" extends BaseTestCase {");
173
174 sb.append("public void ");
175 sb.append(testMethodName);
176 sb.append("() throws Exception {");
177
178 String xml = FileUtil.read(basedir + "/" + fileName);
179
180 if ((xml.indexOf("<title>" + testName + "</title>") == -1) ||
181 (xml.indexOf("colspan=\"3\">" + testName + "</td>") == -1)) {
182
183 System.out.println(testName + " has an invalid test name");
184 }
185
186 if (xml.indexOf(">") != -1) {
187 xml = StringUtil.replace(xml, ">", ">");
188
189 FileUtil.write(basedir + "/" + fileName, xml);
190 }
191
192 if (xml.indexOf("<") != -1) {
193 xml = StringUtil.replace(xml, "<", "<");
194
195 FileUtil.write(basedir + "/" + fileName, xml);
196 }
197
198 if (xml.indexOf(""") != -1) {
199 xml = StringUtil.replace(xml, """, "\"");
200
201 FileUtil.write(basedir + "/" + fileName, xml);
202 }
203
204 x = xml.indexOf("<tbody>");
205 y = xml.indexOf("</tbody>");
206
207 xml = xml.substring(x, y + 8);
208
209 Map<String, String> labels = new HashMap<String, String>();
210
211 int labelCount = 1;
212
213 x = 0;
214 y = 0;
215
216 while (true) {
217 x = xml.indexOf("<tr>", x);
218 y = xml.indexOf("\n</tr>", x);
219
220 if ((x == -1) || (y == -1)) {
221 break;
222 }
223
224 x += 6;
225 y++;
226
227 String step = xml.substring(x, y);
228
229 String[] params = getParams(step);
230
231 String param1 = params[0];
232 String param2 = fixParam(params[1]);
233
234 if (param1.equals("label")) {
235 String label = labels.get(param2);
236
237 if (label == null) {
238 labelCount++;
239
240 label = labels.put(param2, String.valueOf(labelCount));
241 }
242 }
243 }
244
245 if (labels.size() > 0) {
246 sb.append("int label = 1;");
247
248 sb.append("while (label >= 1) {");
249 sb.append("switch (label) {");
250 sb.append("case 1:");
251 }
252
253 x = 0;
254 y = 0;
255
256 while (true) {
257 x = xml.indexOf("<tr>", x);
258 y = xml.indexOf("\n</tr>", x);
259
260 if ((x == -1) || (y == -1)) {
261 break;
262 }
263
264 x += 6;
265 y++;
266
267 String step = xml.substring(x, y);
268
269 String[] params = getParams(step);
270
271 String param1 = params[0];
272 String param2 = fixParam(params[1]);
273 String param3 = fixParam(params[2]);
274
275 if (param1.equals("addSelection") || param1.equals("clickAt") ||
276 param1.equals("keyPress") || param1.equals("openWindow") ||
277 param1.equals("select") || param1.equals("type") ||
278 param1.equals("typeKeys") || param1.equals("waitForPopUp")) {
279
280 sb.append("selenium.");
281 sb.append(param1);
282 sb.append("(\"");
283 sb.append(param2);
284 sb.append("\", RuntimeVariables.replace(");
285
286 if (param3.startsWith("${")) {
287 sb.append("RuntimeVariables.getValue(\"");
288
289 String text = param3.substring(2, param3.length() - 1);
290
291 sb.append(text);
292 sb.append("\")");
293 }
294 else {
295 sb.append("\"");
296 sb.append(param3);
297 sb.append("\"");
298 }
299
300 sb.append("));");
301 }
302 else if (param1.equals("assertAlert") ||
303 param1.equals("assertNotAlert")) {
304
305 if (param1.equals("assertAlert")) {
306 sb.append("assertEquals");
307 }
308 else if (param1.equals("assertNotAlert")) {
309 sb.append("assertNotEquals");
310 }
311
312 sb.append("(\"");
313 sb.append(param2);
314 sb.append("\", selenium.getAlert());");
315 }
316 else if (param1.equals("assertChecked") ||
317 param1.equals("assertNotChecked")) {
318
319 if (param1.equals("assertChecked")) {
320 sb.append("assertTrue");
321 }
322 else if (param1.equals("assertNotChecked")) {
323 sb.append("assertFalse");
324 }
325
326 sb.append("(selenium.isChecked(\"");
327 sb.append(param2);
328 sb.append("\"));");
329 }
330 else if (param1.equals("assertConfirmation")) {
331 param2 = StringUtil.replace(param2, "?", "[\\\\s\\\\S]");
332
333 sb.append("assertTrue(selenium.getConfirmation().matches(\"^");
334 sb.append(param2);
335 sb.append("$\"));");
336 }
337 else if (param1.equals("assertLocation") ||
338 param1.equals("assertNotLocation")) {
339
340 if (param1.equals("assertLocation")) {
341 sb.append("assertEquals");
342 }
343 else if (param1.equals("assertNotLocation")) {
344 sb.append("assertNotEquals");
345 }
346
347 sb.append("(\"");
348 sb.append(param2);
349 sb.append("\", selenium.getLocation());");
350 }
351 else if (param1.equals("assertElementNotPresent") ||
352 param1.equals("assertElementPresent")) {
353
354 if (param1.equals("assertElementNotPresent")) {
355 sb.append("assertFalse");
356 }
357 else if (param1.equals("assertElementPresent")) {
358 sb.append("assertTrue");
359 }
360
361 sb.append("(selenium.isElementPresent(\"");
362 sb.append(param2);
363 sb.append("\"));");
364 }
365 else if (param1.equals("assertNotPartialText") ||
366 param1.equals("assertPartialText")) {
367
368 if (param1.equals("assertNotPartialText")) {
369 sb.append("assertFalse");
370 }
371 else if (param1.equals("assertPartialText")) {
372 sb.append("assertTrue");
373 }
374
375 sb.append("(selenium.isPartialText(\"");
376 sb.append(param2);
377 sb.append("\", ");
378
379 if (param3.startsWith("${")) {
380 sb.append("RuntimeVariables.getValue(\"");
381
382 String text = param3.substring(2, param3.length() - 1);
383
384 sb.append(text);
385 sb.append("\")");
386 }
387 else {
388 sb.append("\"");
389 sb.append(param3);
390 sb.append("\"");
391 }
392
393 sb.append("));");
394 }
395 else if (param1.equals("assertNotSelectedLabel") ||
396 param1.equals("assertSelectedLabel")) {
397
398 if (param1.equals("assertNotSelectedLabel")) {
399 sb.append("assertNotEquals");
400 }
401 else if (param1.equals("assertSelectedLabel")) {
402 sb.append("assertEquals");
403 }
404
405 sb.append("(");
406
407 if (param3.startsWith("${")) {
408 sb.append("RuntimeVariables.getValue(\"");
409
410 String text = param3.substring(2, param3.length() - 1);
411
412 sb.append(text);
413 sb.append("\")");
414 }
415 else {
416 sb.append("\"");
417 sb.append(param3);
418 sb.append("\"");
419 }
420
421 sb.append(", selenium.getSelectedLabel(\"");
422 sb.append(param2);
423 sb.append("\"));");
424 }
425 else if (param1.equals("assertNotSelectedLabels") ||
426 param1.equals("assertSelectedLabels")) {
427
428 if (param1.equals("assertNotSelectedLabels")) {
429 sb.append("assertNotEquals");
430 }
431 else if (param1.equals("assertSelectedLabels")) {
432 sb.append("assertEquals");
433 }
434
435 sb.append("(\"");
436 sb.append(param3);
437 sb.append("\", join(selenium.getSelectedLabels(\"");
438 sb.append(param2);
439 sb.append("\"), \',\'));");
440 }
441 else if (param1.equals("assertNotText") ||
442 param1.equals("assertText")) {
443
444 if (param1.equals("assertNotText")) {
445 sb.append("assertNotEquals");
446 }
447 else if (param1.equals("assertText")) {
448 sb.append("assertEquals");
449 }
450
451 sb.append("(RuntimeVariables.replace(\"");
452 sb.append(param3);
453 sb.append("\"), selenium.getText(\"");
454 sb.append(param2);
455 sb.append("\"));");
456 }
457 else if (param1.equals("assertNotValue") ||
458 param1.equals("assertValue")) {
459
460 if (param1.equals("assertNotValue")) {
461 sb.append("assertNotEquals");
462 }
463 else if (param1.equals("assertValue")) {
464 sb.append("assertEquals");
465 }
466
467 sb.append("(\"");
468 sb.append(param3);
469 sb.append("\", selenium.getValue(\"");
470 sb.append(param2);
471 sb.append("\"));");
472 }
473 else if (param1.equals("assertNotVisible") ||
474 param1.equals("assertVisible")) {
475
476 if (param1.equals("assertNotVisible")) {
477 sb.append("assertFalse");
478 }
479 else if (param1.equals("assertVisible")) {
480 sb.append("assertTrue");
481 }
482
483 sb.append("(");
484 sb.append("selenium.isVisible(\"");
485 sb.append(param2);
486 sb.append("\"));");
487 }
488 else if (param1.equals("assertSelectOptions")) {
489 String[] expectedArray = StringUtil.split(param3);
490
491 sb.append("String[] actualArray = ");
492 sb.append("selenium.getSelectOptions(\"");
493 sb.append(param2);
494 sb.append("\");");
495
496 sb.append("assertEquals(");
497 sb.append(expectedArray.length);
498 sb.append(", actualArray.length);");
499
500 for (int i = 0; i < expectedArray.length; i++) {
501 sb.append("assertEquals(\"");
502 sb.append(expectedArray[i]);
503 sb.append("\", actualArray[");
504 sb.append(i);
505 sb.append("]);");
506 }
507 }
508 else if (param1.equals("assertTextNotPresent") ||
509 param1.equals("assertTextPresent")) {
510
511 if (param1.equals("assertTextNotPresent")) {
512 sb.append("assertFalse");
513 }
514 else if (param1.equals("assertTextPresent")) {
515 sb.append("assertTrue");
516 }
517
518 sb.append("(selenium.isTextPresent(\"");
519 sb.append(param2);
520 sb.append("\"));");
521 }
522 else if (param1.equals("captureEntirePageScreenshot")) {
523 int pos = param2.lastIndexOf("\\");
524
525 String dirName = param2.substring(0, pos + 1);
526
527 sb.append("FileUtil.mkdirs(RuntimeVariables.replace(\"");
528 sb.append(dirName);
529 sb.append("\"));");
530 sb.append("selenium.captureEntirePageScreenshot(");
531 sb.append("RuntimeVariables.replace(\"");
532 sb.append(param2);
533 sb.append("\"), \"\");");
534 }
535 else if (param1.equals("check") || param1.equals("click") ||
536 param1.equals("doubleClick") ||
537 param1.equals("mouseDown") || param1.equals("mouseOver") ||
538 param1.equals("mouseUp") || param1.equals("open") ||
539 param1.equals("uncheck") || param1.equals("selectFrame") ||
540 param1.equals("selectWindow")) {
541
542 sb.append("selenium.");
543 sb.append(param1);
544 sb.append("(\"");
545 sb.append(param2);
546 sb.append("\");");
547 }
548 else if (param1.equals("clickAndWait")) {
549 sb.append("selenium.click(RuntimeVariables.replace(\"");
550 sb.append(param2);
551 sb.append("\"));");
552 sb.append("selenium.waitForPageToLoad(\"30000\");");
553 }
554 else if (param1.equals("clickAtAndWait") ||
555 param1.equals("keyPressAndWait") ||
556 param1.equals("selectAndWait")) {
557
558 sb.append("selenium.");
559
560 String text = param1.substring(0, param1.length() - 7);
561
562 sb.append(text);
563 sb.append("(\"");
564 sb.append(param2);
565 sb.append("\", RuntimeVariables.replace(\"");
566 sb.append(param3);
567 sb.append("\"));");
568 sb.append("selenium.waitForPageToLoad(\"30000\");");
569 }
570 else if (param1.equals("close") || param1.equals("refresh")) {
571 sb.append("selenium.");
572 sb.append(param1);
573 sb.append("();");
574 }
575 else if (param1.equals("dragAndDropToObject")) {
576 sb.append("selenium.");
577 sb.append("dragAndDropToObject(\"");
578 sb.append(param2);
579 sb.append("\", \"");
580 sb.append(param3);
581 sb.append("\");");
582 }
583 else if (param1.equals("echo")) {
584 sb.append("System.out.println(\"");
585 sb.append(param2);
586 sb.append("\");");
587 }
588 else if (param1.equals("gotoIf")) {
589 String conditional = StringUtil.replace(
590 param2, new String[] {"${", "}"}, new String[] {"", ""});
591
592 sb.append("if (");
593 sb.append(conditional);
594 sb.append(") {");
595 sb.append("label =");
596 sb.append(labels.get(param3));
597 sb.append(";");
598 sb.append("continue;");
599 sb.append("}");
600 }
601 else if (param1.equals("label")) {
602 String label = labels.get(param2);
603
604 sb.append("case ");
605 sb.append(label);
606 sb.append(":");
607 }
608 else if (param1.equals("pause")) {
609 sb.append("Thread.sleep(");
610 sb.append(param2);
611 sb.append(");");
612 }
613 else if (param1.equals("refreshAndWait")) {
614 sb.append("selenium.refresh();");
615 sb.append("selenium.waitForPageToLoad(\"30000\");");
616 }
617 else if (param1.equals("store")) {
618 sb.append("boolean ");
619 sb.append(param3);
620 sb.append(" = ");
621
622 if (param2.startsWith("eval(")) {
623 String eval = param2.substring(5, param2.length() - 1);
624
625 eval = StringUtil.replace(eval, "'", "\"");
626
627 sb.append(eval);
628 }
629
630 sb.append(";");
631 }
632 else if (param1.equals("storeCurrentDay")) {
633 sb.append("String ");
634 sb.append(param2);
635 sb.append(" = selenium.getCurrentDay();");
636
637 sb.append("RuntimeVariables.setValue(\"");
638 sb.append(param2);
639 sb.append("\", ");
640 sb.append(param2);
641 sb.append(");");
642 }
643 else if (param1.equals("storeCurrentMonth")) {
644 sb.append("String ");
645 sb.append(param2);
646 sb.append(" = selenium.getCurrentMonth();");
647
648 sb.append("RuntimeVariables.setValue(\"");
649 sb.append(param2);
650 sb.append("\", ");
651 sb.append(param2);
652 sb.append(");");
653 }
654 else if (param1.equals("storeCurrentYear")) {
655 sb.append("String ");
656 sb.append(param2);
657 sb.append(" = selenium.getCurrentYear();");
658
659 sb.append("RuntimeVariables.setValue(\"");
660 sb.append(param2);
661 sb.append("\", ");
662 sb.append(param2);
663 sb.append(");");
664 }
665 else if (param1.equals("storeIncrementedText")) {
666 sb.append("String ");
667 sb.append(param3);
668 sb.append(" = selenium.getIncrementedText(\"");
669 sb.append(param2);
670 sb.append("\");");
671
672 sb.append("RuntimeVariables.setValue(\"");
673 sb.append(param3);
674 sb.append("\", ");
675 sb.append(param3);
676 sb.append(");");
677 }
678 else if (param1.equals("storeText")) {
679 sb.append("String ");
680 sb.append(param3);
681 sb.append(" = selenium.getText(\"");
682 sb.append(param2);
683 sb.append("\");");
684
685 sb.append("RuntimeVariables.setValue(\"");
686 sb.append(param3);
687 sb.append("\", ");
688 sb.append(param3);
689 sb.append(");");
690 }
691 else if (param1.equals("verifyElementNotPresent") ||
692 param1.equals("verifyElementPresent")) {
693
694 if (param1.equals("verifyElementNotPresent")) {
695 sb.append("verifyFalse");
696 }
697 else if (param1.equals("verifyElementPresent")) {
698 sb.append("verifyTrue");
699 }
700
701 sb.append("(selenium.isElementPresent(\"");
702 sb.append(param2);
703 sb.append("\"));");
704 }
705 else if (param1.equals("verifyTextNotPresent") ||
706 param1.equals("verifyTextPresent")) {
707
708 if (param1.equals("verifyTextNotPresent")) {
709 sb.append("verifyFalse");
710 }
711 else if (param1.equals("verifyTextPresent")) {
712 sb.append("verifyTrue");
713 }
714
715 sb.append("(selenium.isTextPresent(\"");
716 sb.append(param2);
717 sb.append("\"));");
718 }
719 else if (param1.equals("verifyTitle")) {
720 sb.append("verifyEquals(\"");
721 sb.append(param2);
722 sb.append("\", selenium.getTitle());");
723 }
724 else if (param1.equals("waitForElementNotPresent") ||
725 param1.equals("waitForElementPresent") ||
726 param1.equals("waitForNotPartialText") ||
727 param1.equals("waitForNotSelectedLabel") ||
728 param1.equals("waitForNotTable") ||
729 param1.equals("waitForNotText") ||
730 param1.equals("waitForNotValue") ||
731 param1.equals("waitForNotVisible") ||
732 param1.equals("waitForPartialText") ||
733 param1.equals("waitForSelectedLabel") ||
734 param1.equals("waitForTable") ||
735 param1.equals("waitForText") ||
736 param1.equals("waitForTextNotPresent") ||
737 param1.equals("waitForTextPresent") ||
738 param1.equals("waitForValue") ||
739 param1.equals("waitForVisible")) {
740
741 sb.append("for (int second = 0;; second++) {");
742 sb.append("if (second >= 60) {");
743 sb.append("fail(\"timeout\");");
744 sb.append("}");
745
746 sb.append("try {");
747 sb.append("if (");
748
749 if (param1.equals("waitForElementNotPresent") ||
750 param1.equals("waitForNotPartialText") ||
751 param1.equals("waitForNotSelectedLabel") ||
752 param1.equals("waitForNotTable") ||
753 param1.equals("waitForNotText") ||
754 param1.equals("waitForNotValue") ||
755 param1.equals("waitForNotVisible") ||
756 param1.equals("waitForTextNotPresent")) {
757
758 sb.append("!");
759 }
760
761 if (param1.equals("waitForElementNotPresent") ||
762 param1.equals("waitForElementPresent")) {
763
764 sb.append("selenium.isElementPresent");
765 sb.append("(\"");
766 sb.append(param2);
767 sb.append("\")");
768 }
769 else if (param1.equals("waitForNotPartialText") ||
770 param1.equals("waitForPartialText")) {
771
772 sb.append("selenium.isPartialText(\"");
773 sb.append(param2);
774 sb.append("\", ");
775
776 if (param3.startsWith("${")) {
777 sb.append("RuntimeVariables.getValue(\"");
778
779 String text = param3.substring(2, param3.length() - 1);
780
781 sb.append(text);
782 sb.append("\")");
783 }
784 else {
785 sb.append("\"");
786 sb.append(param3);
787 sb.append("\"");
788 }
789
790 sb.append(")");
791 }
792 else if (param1.equals("waitForNotSelectedLabel") ||
793 param1.equals("waitForSelectedLabel"))
794 {
795
796 if (param3.startsWith("${")) {
797 sb.append("RuntimeVariables.getValue(\"");
798
799 String text = param3.substring(2, param3.length() - 1);
800
801 sb.append(text);
802 sb.append("\")");
803 }
804 else {
805 sb.append("\"");
806 sb.append(param3);
807 sb.append("\"");
808 }
809
810 sb.append(".equals(selenium.getSelectedLabel(\"");
811 sb.append(param2);
812 sb.append("\"))");
813 }
814 else if (param1.equals("waitForNotTable") ||
815 param1.equals("waitForTable")) {
816
817 sb.append("StringPool.BLANK.equals(selenium.getTable(\"");
818 sb.append(param2);
819 sb.append("\"))");
820 }
821 else if (param1.equals("waitForNotText") ||
822 param1.equals("waitForText")) {
823
824 sb.append("RuntimeVariables.replace(\"");
825 sb.append(param3);
826 sb.append("\").equals(selenium.getText(\"");
827 sb.append(param2);
828 sb.append("\"))");
829 }
830 else if (param1.equals("waitForNotValue") ||
831 param1.equals("waitForValue")) {
832
833 sb.append("RuntimeVariables.replace(\"");
834 sb.append(param3);
835 sb.append("\").equals(selenium.getValue(\"");
836 sb.append(param2);
837 sb.append("\"))");
838 }
839 else if (param1.equals("waitForNotVisible") ||
840 param1.equals("waitForVisible")) {
841
842 sb.append("selenium.isVisible");
843 sb.append("(\"");
844 sb.append(param2);
845 sb.append("\")");
846 }
847 else if (param1.equals("waitForTextNotPresent") ||
848 param1.equals("waitForTextPresent")) {
849
850 sb.append("selenium.isTextPresent");
851 sb.append("(\"");
852 sb.append(param2);
853 sb.append("\")");
854 }
855
856 sb.append(") {");
857 sb.append("break;");
858 sb.append("}");
859 sb.append("}");
860 sb.append("catch (Exception e) {");
861 sb.append("}");
862
863 sb.append("Thread.sleep(1000);");
864 sb.append("}");
865 }
866 else {
867 System.out.println(param1 + " was not translated");
868 }
869 }
870
871 if (labels.size() > 0) {
872 sb.append("case 100:");
873 sb.append("label = -1;");
874 sb.append("}");
875 sb.append("}");
876 }
877
878 sb.append("}");
879 sb.append("}");
880
881 String content = sb.toString();
882
883 ServiceBuilder.writeFile(new File(testFileName), content);
884 }
885
886 private static final String[] _FIX_PARAM_OLD_SUBS = new String[] {
887 "\\\\n", "<br />"
888 };
889
890 private static final String[] _FIX_PARAM_NEW_SUBS = new String[] {
891 "\\n", "\\n"
892 };
893
894 }