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(CharPool.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
282 if (param2.startsWith("${")) {
283 sb.append("RuntimeVariables.getValue(\"");
284
285 String text = param2.substring(2, param2.length() - 1);
286
287 sb.append(text);
288 sb.append("\")");
289 }
290 else {
291 sb.append("\"");
292 sb.append(param2);
293 sb.append("\"");
294 }
295
296 sb.append(", RuntimeVariables.replace(");
297
298 if (param3.startsWith("${")) {
299 sb.append("RuntimeVariables.getValue(\"");
300
301 String text = param3.substring(2, param3.length() - 1);
302
303 sb.append(text);
304 sb.append("\")");
305 }
306 else {
307 sb.append("\"");
308 sb.append(param3);
309 sb.append("\"");
310 }
311
312 sb.append("));");
313 }
314 else if (param1.equals("assertAlert") ||
315 param1.equals("assertNotAlert")) {
316
317 if (param1.equals("assertAlert")) {
318 sb.append("assertEquals");
319 }
320 else if (param1.equals("assertNotAlert")) {
321 sb.append("assertNotEquals");
322 }
323
324 sb.append("(\"");
325 sb.append(param2);
326 sb.append("\", selenium.getAlert());");
327 }
328 else if (param1.equals("assertChecked") ||
329 param1.equals("assertNotChecked")) {
330
331 if (param1.equals("assertChecked")) {
332 sb.append("assertTrue");
333 }
334 else if (param1.equals("assertNotChecked")) {
335 sb.append("assertFalse");
336 }
337
338 sb.append("(selenium.isChecked(\"");
339 sb.append(param2);
340 sb.append("\"));");
341 }
342 else if (param1.equals("assertConfirmation")) {
343 param2 = StringUtil.replace(param2, "?", "[\\\\s\\\\S]");
344
345 sb.append("assertTrue(selenium.getConfirmation().matches(\"^");
346 sb.append(param2);
347 sb.append("$\"));");
348 }
349 else if (param1.equals("assertLocation") ||
350 param1.equals("assertNotLocation")) {
351
352 if (param1.equals("assertLocation")) {
353 sb.append("assertEquals");
354 }
355 else if (param1.equals("assertNotLocation")) {
356 sb.append("assertNotEquals");
357 }
358
359 sb.append("(\"");
360 sb.append(param2);
361 sb.append("\", selenium.getLocation());");
362 }
363 else if (param1.equals("assertElementNotPresent") ||
364 param1.equals("assertElementPresent")) {
365
366 if (param1.equals("assertElementNotPresent")) {
367 sb.append("assertFalse");
368 }
369 else if (param1.equals("assertElementPresent")) {
370 sb.append("assertTrue");
371 }
372
373 sb.append("(selenium.isElementPresent(\"");
374 sb.append(param2);
375 sb.append("\"));");
376 }
377 else if (param1.equals("assertNotPartialText") ||
378 param1.equals("assertPartialText")) {
379
380 if (param1.equals("assertNotPartialText")) {
381 sb.append("assertFalse");
382 }
383 else if (param1.equals("assertPartialText")) {
384 sb.append("assertTrue");
385 }
386
387 sb.append("(selenium.isPartialText(\"");
388 sb.append(param2);
389 sb.append("\", ");
390
391 if (param3.startsWith("${")) {
392 sb.append("RuntimeVariables.getValue(\"");
393
394 String text = param3.substring(2, param3.length() - 1);
395
396 sb.append(text);
397 sb.append("\")");
398 }
399 else {
400 sb.append("\"");
401 sb.append(param3);
402 sb.append("\"");
403 }
404
405 sb.append("));");
406 }
407 else if (param1.equals("assertNotSelectedLabel") ||
408 param1.equals("assertSelectedLabel")) {
409
410 if (param1.equals("assertNotSelectedLabel")) {
411 sb.append("assertNotEquals");
412 }
413 else if (param1.equals("assertSelectedLabel")) {
414 sb.append("assertEquals");
415 }
416
417 sb.append("(");
418
419 if (param3.startsWith("${")) {
420 sb.append("RuntimeVariables.getValue(\"");
421
422 String text = param3.substring(2, param3.length() - 1);
423
424 sb.append(text);
425 sb.append("\")");
426 }
427 else {
428 sb.append("\"");
429 sb.append(param3);
430 sb.append("\"");
431 }
432
433 sb.append(", selenium.getSelectedLabel(\"");
434 sb.append(param2);
435 sb.append("\"));");
436 }
437 else if (param1.equals("assertNotSelectedLabels") ||
438 param1.equals("assertSelectedLabels")) {
439
440 if (param1.equals("assertNotSelectedLabels")) {
441 sb.append("assertNotEquals");
442 }
443 else if (param1.equals("assertSelectedLabels")) {
444 sb.append("assertEquals");
445 }
446
447 sb.append("(\"");
448 sb.append(param3);
449 sb.append("\", join(selenium.getSelectedLabels(\"");
450 sb.append(param2);
451 sb.append("\"), \',\'));");
452 }
453 else if (param1.equals("assertNotText") ||
454 param1.equals("assertText")) {
455
456 if (param1.equals("assertNotText")) {
457 sb.append("assertNotEquals");
458 }
459 else if (param1.equals("assertText")) {
460 sb.append("assertEquals");
461 }
462
463 sb.append("(RuntimeVariables.replace(\"");
464 sb.append(param3);
465 sb.append("\"), selenium.getText(\"");
466 sb.append(param2);
467 sb.append("\"));");
468 }
469 else if (param1.equals("assertNotValue") ||
470 param1.equals("assertValue")) {
471
472 if (param1.equals("assertNotValue")) {
473 sb.append("assertNotEquals");
474 }
475 else if (param1.equals("assertValue")) {
476 sb.append("assertEquals");
477 }
478
479 sb.append("(\"");
480 sb.append(param3);
481 sb.append("\", selenium.getValue(\"");
482 sb.append(param2);
483 sb.append("\"));");
484 }
485 else if (param1.equals("assertNotVisible") ||
486 param1.equals("assertVisible")) {
487
488 if (param1.equals("assertNotVisible")) {
489 sb.append("assertFalse");
490 }
491 else if (param1.equals("assertVisible")) {
492 sb.append("assertTrue");
493 }
494
495 sb.append("(");
496 sb.append("selenium.isVisible(\"");
497 sb.append(param2);
498 sb.append("\"));");
499 }
500 else if (param1.equals("assertSelectOptions")) {
501 String[] expectedArray = StringUtil.split(param3);
502
503 sb.append("String[] actualArray = ");
504 sb.append("selenium.getSelectOptions(\"");
505 sb.append(param2);
506 sb.append("\");");
507
508 sb.append("assertEquals(");
509 sb.append(expectedArray.length);
510 sb.append(", actualArray.length);");
511
512 for (int i = 0; i < expectedArray.length; i++) {
513 sb.append("assertEquals(\"");
514 sb.append(expectedArray[i]);
515 sb.append("\", actualArray[");
516 sb.append(i);
517 sb.append("]);");
518 }
519 }
520 else if (param1.equals("assertTextNotPresent") ||
521 param1.equals("assertTextPresent")) {
522
523 if (param1.equals("assertTextNotPresent")) {
524 sb.append("assertFalse");
525 }
526 else if (param1.equals("assertTextPresent")) {
527 sb.append("assertTrue");
528 }
529
530 sb.append("(selenium.isTextPresent(\"");
531 sb.append(param2);
532 sb.append("\"));");
533 }
534 else if (param1.equals("captureEntirePageScreenshot")) {
535 int pos = param2.lastIndexOf("\\");
536
537 String dirName = param2.substring(0, pos + 1);
538
539 sb.append("FileUtil.mkdirs(RuntimeVariables.replace(\"");
540 sb.append(dirName);
541 sb.append("\"));");
542 sb.append("selenium.captureEntirePageScreenshot(");
543 sb.append("RuntimeVariables.replace(\"");
544 sb.append(param2);
545 sb.append("\"), \"\");");
546 }
547 else if (param1.equals("check") || param1.equals("click") ||
548 param1.equals("doubleClick") ||
549 param1.equals("mouseDown") || param1.equals("mouseOver") ||
550 param1.equals("mouseUp") || param1.equals("open") ||
551 param1.equals("selectFrame") ||
552 param1.equals("selectPopUp") ||
553 param1.equals("selectWindow") ||
554 param1.equals("setTimeout") || param1.equals("uncheck")) {
555
556 sb.append("selenium.");
557 sb.append(param1);
558 sb.append("(\"");
559 sb.append(param2);
560 sb.append("\");");
561 }
562 else if (param1.equals("clickAndWait")) {
563 sb.append("selenium.click(RuntimeVariables.replace(\"");
564 sb.append(param2);
565 sb.append("\"));");
566 sb.append("selenium.waitForPageToLoad(\"30000\");");
567 }
568 else if (param1.equals("clickAtAndWait") ||
569 param1.equals("keyPressAndWait") ||
570 param1.equals("selectAndWait")) {
571
572 sb.append("selenium.");
573
574 String text = param1.substring(0, param1.length() - 7);
575
576 sb.append(text);
577 sb.append("(\"");
578 sb.append(param2);
579 sb.append("\", RuntimeVariables.replace(\"");
580 sb.append(param3);
581 sb.append("\"));");
582 sb.append("selenium.waitForPageToLoad(\"30000\");");
583 }
584 else if (param1.equals("close") || param1.equals("refresh")) {
585 sb.append("selenium.");
586 sb.append(param1);
587 sb.append("();");
588 }
589 else if (param1.equals("dragAndDropToObject")) {
590 sb.append("selenium.");
591 sb.append("dragAndDropToObject(\"");
592 sb.append(param2);
593 sb.append("\", \"");
594 sb.append(param3);
595 sb.append("\");");
596 }
597 else if (param1.equals("echo")) {
598 sb.append("System.out.println(\"");
599 sb.append(param2);
600 sb.append("\");");
601 }
602 else if (param1.equals("gotoIf")) {
603 String conditional = StringUtil.replace(
604 param2, new String[] {"${", "}"}, new String[] {"", ""});
605
606 sb.append("if (");
607 sb.append(conditional);
608 sb.append(") {");
609 sb.append("label =");
610 sb.append(labels.get(param3));
611 sb.append(";");
612 sb.append("continue;");
613 sb.append("}");
614 }
615 else if (param1.equals("label")) {
616 String label = labels.get(param2);
617
618 sb.append("case ");
619 sb.append(label);
620 sb.append(":");
621 }
622 else if (param1.equals("pause")) {
623 sb.append("Thread.sleep(");
624 sb.append(param2);
625 sb.append(");");
626 }
627 else if (param1.equals("refreshAndWait")) {
628 sb.append("selenium.refresh();");
629 sb.append("selenium.waitForPageToLoad(\"30000\");");
630 }
631 else if (param1.equals("store")) {
632 sb.append("boolean ");
633 sb.append(param3);
634 sb.append(" = ");
635
636 if (param2.startsWith("eval(")) {
637 String eval = param2.substring(5, param2.length() - 1);
638
639 eval = StringUtil.replace(eval, "'", "\"");
640
641 sb.append(eval);
642 }
643
644 sb.append(";");
645 }
646 else if (param1.equals("storeCurrentDay")) {
647 sb.append("String ");
648 sb.append(param2);
649 sb.append(" = selenium.getCurrentDay();");
650
651 sb.append("RuntimeVariables.setValue(\"");
652 sb.append(param2);
653 sb.append("\", ");
654 sb.append(param2);
655 sb.append(");");
656 }
657 else if (param1.equals("storeCurrentMonth")) {
658 sb.append("String ");
659 sb.append(param2);
660 sb.append(" = selenium.getCurrentMonth();");
661
662 sb.append("RuntimeVariables.setValue(\"");
663 sb.append(param2);
664 sb.append("\", ");
665 sb.append(param2);
666 sb.append(");");
667 }
668 else if (param1.equals("storeCurrentYear")) {
669 sb.append("String ");
670 sb.append(param2);
671 sb.append(" = selenium.getCurrentYear();");
672
673 sb.append("RuntimeVariables.setValue(\"");
674 sb.append(param2);
675 sb.append("\", ");
676 sb.append(param2);
677 sb.append(");");
678 }
679 else if (param1.equals("storeIncrementedText")) {
680 sb.append("String ");
681 sb.append(param3);
682 sb.append(" = selenium.getIncrementedText(\"");
683 sb.append(param2);
684 sb.append("\");");
685
686 sb.append("RuntimeVariables.setValue(\"");
687 sb.append(param3);
688 sb.append("\", ");
689 sb.append(param3);
690 sb.append(");");
691 }
692 else if (param1.equals("storeLocation")) {
693 sb.append("String ");
694 sb.append(param2);
695 sb.append(" = selenium.getLocation();");
696
697 sb.append("RuntimeVariables.setValue(\"");
698 sb.append(param2);
699 sb.append("\", ");
700 sb.append(param2);
701 sb.append(");");
702 }
703 else if (param1.equals("storeText")) {
704 sb.append("String ");
705 sb.append(param3);
706 sb.append(" = selenium.getText(\"");
707 sb.append(param2);
708 sb.append("\");");
709
710 sb.append("RuntimeVariables.setValue(\"");
711 sb.append(param3);
712 sb.append("\", ");
713 sb.append(param3);
714 sb.append(");");
715 }
716 else if (param1.equals("verifyElementNotPresent") ||
717 param1.equals("verifyElementPresent")) {
718
719 if (param1.equals("verifyElementNotPresent")) {
720 sb.append("verifyFalse");
721 }
722 else if (param1.equals("verifyElementPresent")) {
723 sb.append("verifyTrue");
724 }
725
726 sb.append("(selenium.isElementPresent(\"");
727 sb.append(param2);
728 sb.append("\"));");
729 }
730 else if (param1.equals("verifyTextNotPresent") ||
731 param1.equals("verifyTextPresent")) {
732
733 if (param1.equals("verifyTextNotPresent")) {
734 sb.append("verifyFalse");
735 }
736 else if (param1.equals("verifyTextPresent")) {
737 sb.append("verifyTrue");
738 }
739
740 sb.append("(selenium.isTextPresent(\"");
741 sb.append(param2);
742 sb.append("\"));");
743 }
744 else if (param1.equals("verifyTitle")) {
745 sb.append("verifyEquals(\"");
746 sb.append(param2);
747 sb.append("\", selenium.getTitle());");
748 }
749 else if (param1.equals("waitForElementNotPresent") ||
750 param1.equals("waitForElementPresent") ||
751 param1.equals("waitForNotPartialText") ||
752 param1.equals("waitForNotSelectedLabel") ||
753 param1.equals("waitForNotTable") ||
754 param1.equals("waitForNotText") ||
755 param1.equals("waitForNotValue") ||
756 param1.equals("waitForNotVisible") ||
757 param1.equals("waitForPartialText") ||
758 param1.equals("waitForSelectedLabel") ||
759 param1.equals("waitForTable") ||
760 param1.equals("waitForText") ||
761 param1.equals("waitForTextNotPresent") ||
762 param1.equals("waitForTextPresent") ||
763 param1.equals("waitForValue") ||
764 param1.equals("waitForVisible")) {
765
766 sb.append("for (int second = 0;; second++) {");
767 sb.append("if (second >= 60) {");
768 sb.append("fail(\"timeout\");");
769 sb.append("}");
770
771 sb.append("try {");
772 sb.append("if (");
773
774 if (param1.equals("waitForElementNotPresent") ||
775 param1.equals("waitForNotPartialText") ||
776 param1.equals("waitForNotSelectedLabel") ||
777 param1.equals("waitForNotTable") ||
778 param1.equals("waitForNotText") ||
779 param1.equals("waitForNotValue") ||
780 param1.equals("waitForNotVisible") ||
781 param1.equals("waitForTextNotPresent")) {
782
783 sb.append("!");
784 }
785
786 if (param1.equals("waitForElementNotPresent") ||
787 param1.equals("waitForElementPresent")) {
788
789 sb.append("selenium.isElementPresent");
790 sb.append("(\"");
791 sb.append(param2);
792 sb.append("\")");
793 }
794 else if (param1.equals("waitForNotPartialText") ||
795 param1.equals("waitForPartialText")) {
796
797 sb.append("selenium.isPartialText(\"");
798 sb.append(param2);
799 sb.append("\", ");
800
801 if (param3.startsWith("${")) {
802 sb.append("RuntimeVariables.getValue(\"");
803
804 String text = param3.substring(2, param3.length() - 1);
805
806 sb.append(text);
807 sb.append("\")");
808 }
809 else {
810 sb.append("\"");
811 sb.append(param3);
812 sb.append("\"");
813 }
814
815 sb.append(")");
816 }
817 else if (param1.equals("waitForNotSelectedLabel") ||
818 param1.equals("waitForSelectedLabel"))
819 {
820
821 if (param3.startsWith("${")) {
822 sb.append("RuntimeVariables.getValue(\"");
823
824 String text = param3.substring(2, param3.length() - 1);
825
826 sb.append(text);
827 sb.append("\")");
828 }
829 else {
830 sb.append("\"");
831 sb.append(param3);
832 sb.append("\"");
833 }
834
835 sb.append(".equals(selenium.getSelectedLabel(\"");
836 sb.append(param2);
837 sb.append("\"))");
838 }
839 else if (param1.equals("waitForNotTable") ||
840 param1.equals("waitForTable")) {
841
842 sb.append("StringPool.BLANK.equals(selenium.getTable(\"");
843 sb.append(param2);
844 sb.append("\"))");
845 }
846 else if (param1.equals("waitForNotText") ||
847 param1.equals("waitForText")) {
848
849 sb.append("RuntimeVariables.replace(\"");
850 sb.append(param3);
851 sb.append("\").equals(selenium.getText(\"");
852 sb.append(param2);
853 sb.append("\"))");
854 }
855 else if (param1.equals("waitForNotValue") ||
856 param1.equals("waitForValue")) {
857
858 sb.append("RuntimeVariables.replace(\"");
859 sb.append(param3);
860 sb.append("\").equals(selenium.getValue(\"");
861 sb.append(param2);
862 sb.append("\"))");
863 }
864 else if (param1.equals("waitForNotVisible") ||
865 param1.equals("waitForVisible")) {
866
867 sb.append("selenium.isVisible");
868 sb.append("(\"");
869 sb.append(param2);
870 sb.append("\")");
871 }
872 else if (param1.equals("waitForTextNotPresent") ||
873 param1.equals("waitForTextPresent")) {
874
875 sb.append("selenium.isTextPresent");
876 sb.append("(\"");
877 sb.append(param2);
878 sb.append("\")");
879 }
880
881 sb.append(") {");
882 sb.append("break;");
883 sb.append("}");
884 sb.append("}");
885 sb.append("catch (Exception e) {");
886 sb.append("}");
887
888 sb.append("Thread.sleep(1000);");
889 sb.append("}");
890 }
891 else {
892 System.out.println(param1 + " was not translated");
893 }
894 }
895
896 if (labels.size() > 0) {
897 sb.append("case 100:");
898 sb.append("label = -1;");
899 sb.append("}");
900 sb.append("}");
901 }
902
903 sb.append("}");
904 sb.append("}");
905
906 String content = sb.toString();
907
908 ServiceBuilder.writeFile(new File(testFileName), content);
909 }
910
911 private static final String[] _FIX_PARAM_OLD_SUBS = new String[] {
912 "\\\\n", "<br />"
913 };
914
915 private static final String[] _FIX_PARAM_NEW_SUBS = new String[] {
916 "\\n", "\\n"
917 };
918
919 }