001
014
015 package com.liferay.portal.tools;
016
017 import com.liferay.portal.kernel.util.CharPool;
018 import com.liferay.portal.kernel.util.FileUtil;
019 import com.liferay.portal.kernel.util.SetUtil;
020 import com.liferay.portal.kernel.util.StringBundler;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.kernel.util.StringUtil;
023 import com.liferay.portal.kernel.util.UnicodeFormatter;
024 import com.liferay.portal.tools.servicebuilder.ServiceBuilder;
025 import com.liferay.portal.util.InitUtil;
026
027 import java.io.File;
028
029 import java.util.HashMap;
030 import java.util.Map;
031 import java.util.Set;
032
033 import org.apache.tools.ant.DirectoryScanner;
034
035
038 public class SeleneseToJavaBuilder {
039
040 public static void main(String[] args) throws Exception {
041 InitUtil.initWithSpring();
042
043 if (args.length == 1) {
044 new SeleneseToJavaBuilder(args[0]);
045 }
046 else {
047 throw new IllegalArgumentException();
048 }
049 }
050
051 public SeleneseToJavaBuilder(String basedir) throws Exception {
052 DirectoryScanner ds = new DirectoryScanner();
053
054 ds.setBasedir(basedir);
055 ds.setExcludes(
056 new String[] {
057 "**\\IterateThemeTest.java", "**\\StopSeleniumTest.java"
058 });
059 ds.setIncludes(new String[] {"**\\*Test.html", "**\\*Test.java"});
060
061 ds.scan();
062
063 Set<String> fileNames = SetUtil.fromArray(ds.getIncludedFiles());
064
065 for (String fileName : fileNames) {
066
067
068
069
070
071
079
080 if (fileName.endsWith("Test.html")) {
081 translate(basedir, fileName);
082 }
083 else if (fileName.endsWith("Test.java")) {
084 if (!fileNames.contains(
085 fileName.substring(0, fileName.length() - 5) +
086 ".html")) {
087
088 System.out.println("unused: " + fileName);
089 }
090 }
091 }
092 }
093
094 protected String fixParam(String param) {
095 StringBuilder sb = new StringBuilder();
096
097 char[] array = param.toCharArray();
098
099 for (int i = 0; i < array.length; ++i) {
100 char c = array[i];
101
102 if (c == CharPool.BACK_SLASH) {
103 sb.append("\\\\");
104 }
105 else if (c == CharPool.QUOTE) {
106 sb.append("\\\"");
107 }
108 else if (Character.isWhitespace(c)) {
109 sb.append(c);
110 }
111 else if ((c < 0x0020) || (c > 0x007e)) {
112 sb.append("\\u");
113 sb.append(UnicodeFormatter.charToHex(c));
114 }
115 else {
116 sb.append(c);
117 }
118 }
119
120 return StringUtil.replace(
121 sb.toString(), _FIX_PARAM_OLD_SUBS, _FIX_PARAM_NEW_SUBS);
122 }
123
124 protected String[] getParams(String step) throws Exception {
125 String[] params = new String[3];
126
127 int x = 0;
128 int y = 0;
129
130 for (int i = 0; i < 3; i++) {
131 x = step.indexOf("<td>", x) + 4;
132 y = step.indexOf("\n", x);
133 y = step.lastIndexOf("</td>", y);
134
135 params[i] = step.substring(x, y);
136 }
137
138 return params;
139 }
140
141 protected void translate(String basedir, String fileName) throws Exception {
142 fileName = StringUtil.replace(
143 fileName, StringPool.BACK_SLASH, StringPool.SLASH);
144
145 int x = fileName.lastIndexOf(StringPool.SLASH);
146 int y = fileName.indexOf(StringPool.PERIOD);
147
148 String testPackagePath = StringUtil.replace(
149 fileName.substring(0, x), StringPool.SLASH, StringPool.PERIOD);
150 String testName = fileName.substring(x + 1, y);
151 String testMethodName =
152 "test" + testName.substring(0, testName.length() - 4);
153 String testFileName =
154 basedir + "/" + fileName.substring(0, y) + ".java";
155
156 StringBundler sb = new StringBundler();
157
158 sb.append("package ");
159 sb.append(testPackagePath);
160 sb.append(";\n\n");
161
162 sb.append("import com.liferay.portal.kernel.util.FileUtil;\n");
163 sb.append("import com.liferay.portal.kernel.util.StringPool;\n");
164 sb.append("import com.liferay.portalweb.portal.BaseTestCase;\n\n");
165 sb.append(
166 "import com.liferay.portalweb.portal.util.RuntimeVariables;\n\n");
167
168 sb.append("public class ");
169 sb.append(testName);
170 sb.append(" extends BaseTestCase {");
171
172 sb.append("public void ");
173 sb.append(testMethodName);
174 sb.append("() throws Exception {");
175
176 String xml = FileUtil.read(basedir + "/" + fileName);
177
178 if ((xml.indexOf("<title>" + testName + "</title>") == -1) ||
179 (xml.indexOf("colspan=\"3\">" + testName + "</td>") == -1)) {
180
181 System.out.println(testName + " has an invalid test name");
182 }
183
184 if (xml.indexOf(">") != -1) {
185 xml = StringUtil.replace(xml, ">", ">");
186
187 FileUtil.write(basedir + "/" + fileName, xml);
188 }
189
190 if (xml.indexOf("<") != -1) {
191 xml = StringUtil.replace(xml, "<", "<");
192
193 FileUtil.write(basedir + "/" + fileName, xml);
194 }
195
196 if (xml.indexOf(""") != -1) {
197 xml = StringUtil.replace(xml, """, "\"");
198
199 FileUtil.write(basedir + "/" + fileName, xml);
200 }
201
202 x = xml.indexOf("<tbody>");
203 y = xml.indexOf("</tbody>");
204
205 xml = xml.substring(x, y + 8);
206
207 Map<String, String> labels = new HashMap<String, String>();
208
209 int labelCount = 1;
210
211 x = 0;
212 y = 0;
213
214 while (true) {
215 x = xml.indexOf("<tr>", x);
216 y = xml.indexOf("\n</tr>", x);
217
218 if ((x == -1) || (y == -1)) {
219 break;
220 }
221
222 x += 6;
223 y++;
224
225 String step = xml.substring(x, y);
226
227 String[] params = getParams(step);
228
229 String param1 = params[0];
230 String param2 = fixParam(params[1]);
231
232 if (param1.equals("label")) {
233 String label = labels.get(param2);
234
235 if (label == null) {
236 labelCount++;
237
238 label = labels.put(param2, String.valueOf(labelCount));
239 }
240 }
241 }
242
243 if (labels.size() > 0) {
244 sb.append("int label = 1;");
245
246 sb.append("while (label >= 1) {");
247 sb.append("switch (label) {");
248 sb.append("case 1:");
249 }
250
251 x = 0;
252 y = 0;
253
254 while (true) {
255 x = xml.indexOf("<tr>", x);
256 y = xml.indexOf("\n</tr>", x);
257
258 if ((x == -1) || (y == -1)) {
259 break;
260 }
261
262 x += 6;
263 y++;
264
265 String step = xml.substring(x, y);
266
267 String[] params = getParams(step);
268
269 String param1 = params[0];
270 String param2 = fixParam(params[1]);
271 String param3 = fixParam(params[2]);
272
273 if (param1.equals("addSelection") || param1.equals("clickAt") ||
274 param1.equals("keyPress") || param1.equals("openWindow") ||
275 param1.equals("select") || param1.equals("type") ||
276 param1.equals("typeKeys") || param1.equals("waitForPopUp")) {
277
278 sb.append("selenium.");
279 sb.append(param1);
280 sb.append("(\"");
281 sb.append(param2);
282 sb.append("\", RuntimeVariables.replace(");
283
284 if (param3.startsWith("${")) {
285 sb.append("RuntimeVariables.getValue(\"");
286
287 String text = param3.substring(2, param3.length() - 1);
288
289 sb.append(text);
290 sb.append("\")");
291 }
292 else {
293 sb.append("\"");
294 sb.append(param3);
295 sb.append("\"");
296 }
297
298 sb.append("));");
299 }
300 else if (param1.equals("assertAlert") ||
301 param1.equals("assertNotAlert")) {
302
303 if (param1.equals("assertAlert")) {
304 sb.append("assertEquals");
305 }
306 else if (param1.equals("assertNotAlert")) {
307 sb.append("assertNotEquals");
308 }
309
310 sb.append("(\"");
311 sb.append(param2);
312 sb.append("\", selenium.getAlert());");
313 }
314 else if (param1.equals("assertChecked") ||
315 param1.equals("assertNotChecked")) {
316
317 if (param1.equals("assertChecked")) {
318 sb.append("assertTrue");
319 }
320 else if (param1.equals("assertNotChecked")) {
321 sb.append("assertFalse");
322 }
323
324 sb.append("(selenium.isChecked(\"");
325 sb.append(param2);
326 sb.append("\"));");
327 }
328 else if (param1.equals("assertConfirmation")) {
329 param2 = StringUtil.replace(param2, "?", "[\\\\s\\\\S]");
330
331 sb.append("assertTrue(selenium.getConfirmation().matches(\"^");
332 sb.append(param2);
333 sb.append("$\"));");
334 }
335 else if (param1.equals("assertLocation") ||
336 param1.equals("assertNotLocation")) {
337
338 if (param1.equals("assertLocation")) {
339 sb.append("assertEquals");
340 }
341 else if (param1.equals("assertNotLocation")) {
342 sb.append("assertNotEquals");
343 }
344
345 sb.append("(\"");
346 sb.append(param2);
347 sb.append("\", selenium.getLocation());");
348 }
349 else if (param1.equals("assertElementNotPresent") ||
350 param1.equals("assertElementPresent")) {
351
352 if (param1.equals("assertElementNotPresent")) {
353 sb.append("assertFalse");
354 }
355 else if (param1.equals("assertElementPresent")) {
356 sb.append("assertTrue");
357 }
358
359 sb.append("(selenium.isElementPresent(\"");
360 sb.append(param2);
361 sb.append("\"));");
362 }
363 else if (param1.equals("assertNotPartialText") ||
364 param1.equals("assertPartialText")) {
365
366 if (param1.equals("assertNotPartialText")) {
367 sb.append("assertFalse");
368 }
369 else if (param1.equals("assertPartialText")) {
370 sb.append("assertTrue");
371 }
372
373 sb.append("(selenium.isPartialText(\"");
374 sb.append(param2);
375 sb.append("\", ");
376
377 if (param3.startsWith("${")) {
378 sb.append("RuntimeVariables.getValue(\"");
379
380 String text = param3.substring(2, param3.length() - 1);
381
382 sb.append(text);
383 sb.append("\")");
384 }
385 else {
386 sb.append("\"");
387 sb.append(param3);
388 sb.append("\"");
389 }
390
391 sb.append("));");
392 }
393 else if (param1.equals("assertNotSelectedLabel") ||
394 param1.equals("assertSelectedLabel")) {
395
396 if (param1.equals("assertNotSelectedLabel")) {
397 sb.append("assertNotEquals");
398 }
399 else if (param1.equals("assertSelectedLabel")) {
400 sb.append("assertEquals");
401 }
402
403 sb.append("(");
404
405 if (param3.startsWith("${")) {
406 sb.append("RuntimeVariables.getValue(\"");
407
408 String text = param3.substring(2, param3.length() - 1);
409
410 sb.append(text);
411 sb.append("\")");
412 }
413 else {
414 sb.append("\"");
415 sb.append(param3);
416 sb.append("\"");
417 }
418
419 sb.append(", selenium.getSelectedLabel(\"");
420 sb.append(param2);
421 sb.append("\"));");
422 }
423 else if (param1.equals("assertNotSelectedLabels") ||
424 param1.equals("assertSelectedLabels")) {
425
426 if (param1.equals("assertNotSelectedLabels")) {
427 sb.append("assertNotEquals");
428 }
429 else if (param1.equals("assertSelectedLabels")) {
430 sb.append("assertEquals");
431 }
432
433 sb.append("(\"");
434 sb.append(param3);
435 sb.append("\", join(selenium.getSelectedLabels(\"");
436 sb.append(param2);
437 sb.append("\"), \',\'));");
438 }
439 else if (param1.equals("assertNotText") ||
440 param1.equals("assertText")) {
441
442 if (param1.equals("assertNotText")) {
443 sb.append("assertNotEquals");
444 }
445 else if (param1.equals("assertText")) {
446 sb.append("assertEquals");
447 }
448
449 sb.append("(RuntimeVariables.replace(\"");
450 sb.append(param3);
451 sb.append("\"), selenium.getText(\"");
452 sb.append(param2);
453 sb.append("\"));");
454 }
455 else if (param1.equals("assertNotValue") ||
456 param1.equals("assertValue")) {
457
458 if (param1.equals("assertNotValue")) {
459 sb.append("assertNotEquals");
460 }
461 else if (param1.equals("assertValue")) {
462 sb.append("assertEquals");
463 }
464
465 sb.append("(\"");
466 sb.append(param3);
467 sb.append("\", selenium.getValue(\"");
468 sb.append(param2);
469 sb.append("\"));");
470 }
471 else if (param1.equals("assertNotVisible") ||
472 param1.equals("assertVisible")) {
473
474 if (param1.equals("assertNotVisible")) {
475 sb.append("assertFalse");
476 }
477 else if (param1.equals("assertVisible")) {
478 sb.append("assertTrue");
479 }
480
481 sb.append("(");
482 sb.append("selenium.isVisible(\"");
483 sb.append(param2);
484 sb.append("\"));");
485 }
486 else if (param1.equals("assertSelectOptions")) {
487 String[] expectedArray = StringUtil.split(param3);
488
489 sb.append("String[] actualArray = ");
490 sb.append("selenium.getSelectOptions(\"");
491 sb.append(param2);
492 sb.append("\");");
493
494 sb.append("assertEquals(");
495 sb.append(expectedArray.length);
496 sb.append(", actualArray.length);");
497
498 for (int i = 0; i < expectedArray.length; i++) {
499 sb.append("assertEquals(\"");
500 sb.append(expectedArray[i]);
501 sb.append("\", actualArray[");
502 sb.append(i);
503 sb.append("]);");
504 }
505 }
506 else if (param1.equals("assertTextNotPresent") ||
507 param1.equals("assertTextPresent")) {
508
509 if (param1.equals("assertTextNotPresent")) {
510 sb.append("assertFalse");
511 }
512 else if (param1.equals("assertTextPresent")) {
513 sb.append("assertTrue");
514 }
515
516 sb.append("(selenium.isTextPresent(\"");
517 sb.append(param2);
518 sb.append("\"));");
519 }
520 else if (param1.equals("captureEntirePageScreenshot")) {
521 int pos = param2.lastIndexOf("\\");
522
523 String dirName = param2.substring(0, pos + 1);
524
525 sb.append("FileUtil.mkdirs(RuntimeVariables.replace(\"");
526 sb.append(dirName);
527 sb.append("\"));");
528 sb.append("selenium.captureEntirePageScreenshot(");
529 sb.append("RuntimeVariables.replace(\"");
530 sb.append(param2);
531 sb.append("\"), \"\");");
532 }
533 else if (param1.equals("check") || param1.equals("click") ||
534 param1.equals("doubleClick") ||
535 param1.equals("mouseDown") || param1.equals("mouseOver") ||
536 param1.equals("mouseUp") || param1.equals("open") ||
537 param1.equals("selectFrame") ||
538 param1.equals("selectPopUp") ||
539 param1.equals("selectWindow") ||
540 param1.equals("setTimeout") || param1.equals("uncheck")) {
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 }