Skip to content

Commit 162fe15

Browse files
The refactoring of widget tests: Stub webdriver/webelement
1 parent da7a1a6 commit 162fe15

File tree

2 files changed

+298
-0
lines changed

2 files changed

+298
-0
lines changed
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests;
2+
3+
import io.appium.java_client.HasSessionDetails;
4+
import org.openqa.selenium.By;
5+
import org.openqa.selenium.WebDriver;
6+
import org.openqa.selenium.remote.Response;
7+
8+
import java.util.List;
9+
import java.util.Map;
10+
import java.util.Set;
11+
12+
import static com.google.common.collect.ImmutableList.of;
13+
import static io.appium.java_client.remote.AutomationName.APPIUM;
14+
import static io.appium.java_client.remote.AutomationName.IOS_XCUI_TEST;
15+
import static io.appium.java_client.remote.AutomationName.SELENDROID;
16+
import static io.appium.java_client.remote.MobilePlatform.ANDROID;
17+
import static io.appium.java_client.remote.MobilePlatform.IOS;
18+
import static io.appium.java_client.remote.MobilePlatform.WINDOWS;
19+
import static org.apache.commons.lang3.StringUtils.EMPTY;
20+
21+
public abstract class AbstractStubWebDriver implements WebDriver, HasSessionDetails {
22+
@Override
23+
public Response execute(String driverCommand, Map<String, ?> parameters) {
24+
return null;
25+
}
26+
27+
@Override
28+
public Response execute(String driverCommand) {
29+
return null;
30+
}
31+
32+
@Override
33+
public abstract String getPlatformName();
34+
35+
@Override
36+
public abstract String getAutomationName();
37+
38+
@Override
39+
public boolean isBrowser() {
40+
return false;
41+
}
42+
43+
@Override
44+
public void get(String url) {
45+
46+
}
47+
48+
@Override
49+
public String getCurrentUrl() {
50+
return null;
51+
}
52+
53+
@Override
54+
public String getTitle() {
55+
return null;
56+
}
57+
58+
@Override
59+
public List<StubWebElement> findElements(By by) {
60+
return of(new StubWebElement(this, by), new StubWebElement(this, by));
61+
}
62+
63+
@Override
64+
public StubWebElement findElement(By by) {
65+
return new StubWebElement(this, by);
66+
}
67+
68+
@Override
69+
public String getPageSource() {
70+
return null;
71+
}
72+
73+
@Override
74+
public void close() {
75+
76+
}
77+
78+
@Override
79+
public void quit() {
80+
}
81+
82+
@Override
83+
public Set<String> getWindowHandles() {
84+
return null;
85+
}
86+
87+
@Override
88+
public String getWindowHandle() {
89+
return null;
90+
}
91+
92+
@Override
93+
public TargetLocator switchTo() {
94+
return null;
95+
}
96+
97+
@Override
98+
public Navigation navigate() {
99+
return null;
100+
}
101+
102+
@Override
103+
public Options manage() {
104+
return null;
105+
}
106+
107+
public static class StubAndroidDriver extends AbstractStubWebDriver {
108+
109+
@Override
110+
public String getPlatformName() {
111+
return ANDROID;
112+
}
113+
114+
@Override
115+
public String getAutomationName() {
116+
return APPIUM;
117+
}
118+
}
119+
120+
public static class StubSelendroidDriver extends AbstractStubWebDriver {
121+
122+
@Override
123+
public String getPlatformName() {
124+
return ANDROID;
125+
}
126+
127+
@Override
128+
public String getAutomationName() {
129+
return SELENDROID;
130+
}
131+
}
132+
133+
public static class StubIOSDriver extends AbstractStubWebDriver {
134+
135+
@Override
136+
public String getPlatformName() {
137+
return IOS;
138+
}
139+
140+
@Override
141+
public String getAutomationName() {
142+
return APPIUM;
143+
}
144+
}
145+
146+
public static class StubIOSXCUITDriver extends AbstractStubWebDriver {
147+
148+
@Override
149+
public String getPlatformName() {
150+
return IOS;
151+
}
152+
153+
@Override
154+
public String getAutomationName() {
155+
return IOS_XCUI_TEST;
156+
}
157+
}
158+
159+
public static class StubWindowsDriver extends AbstractStubWebDriver {
160+
161+
@Override
162+
public String getPlatformName() {
163+
return WINDOWS;
164+
}
165+
166+
@Override
167+
public String getAutomationName() {
168+
return APPIUM;
169+
}
170+
}
171+
172+
public static class StubBrowserDriver extends AbstractStubWebDriver {
173+
174+
@Override
175+
public String getPlatformName() {
176+
return EMPTY;
177+
}
178+
179+
@Override
180+
public String getAutomationName() {
181+
return EMPTY;
182+
}
183+
}
184+
}
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests;
2+
3+
4+
import org.openqa.selenium.*;
5+
import org.openqa.selenium.internal.WrapsDriver;
6+
7+
import java.util.List;
8+
9+
import static com.google.common.collect.ImmutableList.of;
10+
11+
public class StubWebElement implements WebElement, WrapsDriver{
12+
private final WebDriver driver;
13+
private final By by;
14+
15+
public StubWebElement(WebDriver driver, By by) {
16+
this.driver = driver;
17+
this.by = by;
18+
}
19+
20+
@Override
21+
public void click() {
22+
23+
}
24+
25+
@Override
26+
public void submit() {
27+
28+
}
29+
30+
@Override
31+
public void sendKeys(CharSequence... keysToSend) {
32+
33+
}
34+
35+
@Override
36+
public void clear() {
37+
38+
}
39+
40+
@Override
41+
public String getTagName() {
42+
return null;
43+
}
44+
45+
@Override
46+
public String getAttribute(String name) {
47+
return null;
48+
}
49+
50+
@Override
51+
public boolean isSelected() {
52+
return false;
53+
}
54+
55+
@Override
56+
public boolean isEnabled() {
57+
return false;
58+
}
59+
60+
@Override
61+
public String getText() {
62+
return null;
63+
}
64+
65+
@Override
66+
public List<StubWebElement> findElements(By by) {
67+
return of(new StubWebElement(driver, by), new StubWebElement(driver, by));
68+
}
69+
70+
@Override
71+
public StubWebElement findElement(By by) {
72+
return new StubWebElement(driver, by);
73+
}
74+
75+
@Override
76+
public boolean isDisplayed() {
77+
return false;
78+
}
79+
80+
@Override
81+
public Point getLocation() {
82+
return null;
83+
}
84+
85+
@Override
86+
public Dimension getSize() {
87+
return null;
88+
}
89+
90+
@Override
91+
public Rectangle getRect() {
92+
return null;
93+
}
94+
95+
@Override
96+
public String getCssValue(String propertyName) {
97+
return null;
98+
}
99+
100+
@Override
101+
public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException {
102+
return null;
103+
}
104+
105+
@Override
106+
public WebDriver getWrappedDriver() {
107+
return driver;
108+
}
109+
110+
@Override
111+
public String toString() {
112+
return by.toString();
113+
}
114+
}

0 commit comments

Comments
 (0)