1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package edu.samplu.krad.demo.uif.library;
17
18 import com.thoughtworks.selenium.SeleneseTestBase;
19 import org.junit.Test;
20 import org.openqa.selenium.By;
21
22 import static org.junit.Assert.assertTrue;
23
24
25
26
27 public class DemoLibraryElementsActionSmokeTest extends DemoLibraryBase {
28
29
30
31
32 public static final String BOOKMARK_URL = "/kr-krad/kradsampleapp?viewId=Demo-Action-View&methodToCall=start";
33
34 @Override
35 public String getBookmarkUrl() {
36 return BOOKMARK_URL;
37 }
38
39 @Override
40 protected void navigate() throws Exception {
41 waitAndClickById("Demo-LibraryLink", "");
42 waitAndClickByLinkText("Elements");
43 waitAndClickByLinkText("Action");
44 }
45
46 protected void testActionDefault() throws Exception {
47 waitForElementPresentByClassName("uif-headerText-span");
48 assertTextPresent("Default");
49 SeleneseTestBase.assertTrue(getTextByClassName("uif-instructionalMessage").contains(
50 "Action with action script"));
51 assertElementPresentByLinkText("Action Link");
52 }
53
54 protected void testActionPresubmit() throws Exception {
55 waitAndClickByLinkText("Presubmit");
56 waitForElementPresentByClassName("uif-headerText-span");
57 assertTextPresent("Presubmit");
58 assertTextPresent("ActionLinkField with presubmit script");
59 assertElementPresentByLinkText("Pre submit returning true Link");
60 assertElementPresentByLinkText("Pre submit returning false Link");
61
62 waitAndClickByLinkText("Pre submit returning true Link");
63 assertTrue(driver.switchTo().alert().getText().contains("Pre submit call was invoked, returning true"));
64 driver.switchTo().alert().accept();
65
66 waitAndClickByLinkText("Pre submit returning false Link");
67 assertTrue(driver.switchTo().alert().getText().contains("Pre submit call was invoked, returning false"));
68 driver.switchTo().alert().accept();
69 }
70
71 protected void testActionSuccessCallback() throws Exception {
72 waitAndClickByLinkText("Success Callback");
73 waitForElementPresentByClassName("uif-headerText-span");
74 assertTextPresent("Action Field with a success callback script");
75 assertElementPresentByLinkText("Action Link success callback");
76
77 waitAndClickByLinkText("Action Link success callback");
78 assertTrue(driver.switchTo().alert().getText().contains("Refresh called successfully"));
79 driver.switchTo().alert().accept();
80 }
81
82 protected void testActionValidation() throws Exception {
83 waitForElementPresentByClassName("uif-page");
84 driver.findElement(By.className("uif-page")).findElement(By.linkText("Validation")).click();
85
86 waitForElementPresentByClassName("uif-headerText-span");
87 assertTextPresent("Action Field with client side validation");
88 assertTextPresent("InputField 1");
89 assertIsNotVisibleByXpath("//a[contains(text(),'Required')]");
90
91 waitAndClickByLinkText("Action Link with clientside validation");
92 assertIsVisibleByXpath("//a[contains(text(),'Required')]", "");
93
94 waitAndTypeByName("inputField1", "some text");
95 waitAndClickByLinkText("Action Link with clientside validation");
96 assertIsNotVisibleByXpath("//a[contains(text(),'Required')]");
97 }
98
99 protected void testActionImages() throws Exception {
100 waitAndClickByLinkText("Images");
101 waitForElementPresentByClassName("uif-headerText-span");
102 assertTextPresent("Images");
103 assertTextPresent("Action Field with images");
104
105 driver.findElement(By.partialLinkText("Action Link with left image")).findElement(By.className(
106 "leftActionImage"));
107 driver.findElement(By.partialLinkText("Action Link with right image")).findElement(By.className(
108 "rightActionImage"));
109 }
110
111 protected void testActionButton() throws Exception {
112 waitAndClickByLinkText("Buttons");
113 waitForElementPresentByClassName("prettyprint");
114 assertTextPresent("Buttons");
115 assertTextPresent("Action Field buttons");
116
117 waitAndClickButtonByText("button");
118 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
119 driver.switchTo().alert().accept();
120
121 waitAndClickButtonByText("Image BOTTOM");
122 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
123 driver.switchTo().alert().accept();
124
125 waitAndClickById("ST-DemoButtonImageTop");
126 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
127 driver.switchTo().alert().accept();
128
129 driver.findElement(By.xpath("//span[contains(text(),'Image LEFT')]"));
130 driver.findElement(By.id("ST-DemoButtonImageLeft")).click();
131 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
132 driver.switchTo().alert().accept();
133
134 driver.findElement(By.id("ST-DemoButtonImageRight")).click();
135 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
136 driver.switchTo().alert().accept();
137
138 driver.findElement(By.id("ST-DemoButtonImageOnly")).click();
139 assertTrue(driver.switchTo().alert().getText().contains("You clicked a button"));
140 driver.switchTo().alert().accept();
141
142 driver.findElement(By.xpath("//button[contains(text(),'Disabled Button') and @disabled]/preceding-sibling::button/img"));
143 driver.findElement(By.xpath("//button/img[contains(@alt,'Image Only button')]"));
144
145 driver.findElement(By.xpath("//button[contains(text(),'Disabled Button') and @disabled]"));
146 }
147
148 private void testAllActionTabs() throws Exception {
149 testActionDefault();
150 testActionPresubmit();
151 testActionSuccessCallback();
152 testActionValidation();
153 testActionImages();
154 testActionButton();
155 }
156
157 @Test
158 public void testActionButtonAndImagesBookmark() throws Exception {
159 testActionImages();
160 testActionButton();
161 passed();
162 }
163
164 @Test
165 public void testActionButtonBookmark() throws Exception {
166 testActionButton();
167 passed();
168 }
169
170 @Test
171 public void testActionButtonNav() throws Exception {
172 testActionButton();
173 passed();
174 }
175
176 @Test
177 public void testActionBookmark() throws Exception {
178 testAllActionTabs();
179 passed();
180 }
181
182 @Test
183 public void testActionNav() throws Exception {
184 testAllActionTabs();
185 passed();
186 }
187 }