Adding tests for WebElement.
Change-Id: I666e1bd850294aeab243e3217b7b5b32f7b2180d
diff --git a/tests/assets/webkit/form_page.html b/tests/assets/webkit/form_page.html
index a1fe48a..a61e619 100644
--- a/tests/assets/webkit/form_page.html
+++ b/tests/assets/webkit/form_page.html
@@ -15,7 +15,7 @@
<html>
<head>
- <title>Test Page</title>
+ <title>Form Test Page</title>
</head>
<body>
<a id="tagA">Tag A</a>
@@ -28,7 +28,7 @@
<div id=divId name="firstDiv">A div
<a id=nestedLinkId class="divClass" name="nestedLink">Nested text</a>
<a id="n1" name="linkn1">a nested link</a>
- <a id="inner" name="foo">Foo</a>
+ <a id="inner" href="test_hello_world.html" name="foo">Foo</a>
<span id="n1" name="spann1"></span>
<a name=nested>Nested text</a>
</div>
@@ -79,9 +79,12 @@
<input type="radio" id="cheese_and_peas" name="snack" value="cheese and peas" checked/>Cheese and peas<br/>
<input type="radio" id="nothing" name="snack" value="nowt" disabled="disabled"/>Not a sausage
- <input type="hidden" name="hidden" value="fromage" />
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
-
-
+ <form action="test_hello_world.html" method="get">
+ <input type="hidden" name="hidden" value="fromage" id="fromage" />
+ Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
+ <input type="text" value="enter text here" name="textinput" style="background-color:red;width:100px;height:50px"></input>
+ <input type="text" id="typehere"/>
+ <a style="position:absolute;left:200px;top:250px">B</a>
+ </form>
</body>
</html>
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebDriverTest.java b/tests/tests/webkit/src/android/webkit/cts/WebDriverTest.java
index e933420..0bb8b3e 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebDriverTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebDriverTest.java
@@ -73,6 +73,36 @@
assertTrue(mDriver.getPageSource().contains("hello world!"));
}
+ // Navigation
+ public void testNavigateBack() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement link = mDriver.findElement(By.id("inner"));
+ link.click();
+ assertEquals("test hello world", mDriver.getTitle());
+ mDriver.navigate().back();
+ assertEquals("Form Test Page", mDriver.getTitle());
+ }
+
+ public void testNavigateForward() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement link = mDriver.findElement(By.id("inner"));
+ link.click();
+ mDriver.navigate().back();
+ assertEquals("Form Test Page", mDriver.getTitle());
+ mDriver.navigate().forward();
+ assertEquals("test hello world", mDriver.getTitle());
+ }
+
+ public void testRefresh() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ Long result = (Long) mDriver.executeScript(
+ "document.bou = 1;return document.bou;");
+ assertEquals(1, result.intValue());
+ mDriver.navigate().refresh();
+ String result2 = (String) mDriver.executeScript("return document.bou;");
+ assertNull(result2);
+ }
+
// getText
public void testGetTextReturnsEmptyString() {
mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
@@ -96,7 +126,7 @@
public void testGetAttributeNotSetReturnsNull() {
mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
WebElement link = mDriver.findElement(By.linkText("Link=equalssign"));
- assertNull(link.getAttribute("disabled"));
+ assertNull(link.getAttribute(INEXISTENT));
}
// getTagName
@@ -181,12 +211,89 @@
}
}
+ // getCssValue
+ public void testGetCssValue() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement text = mDriver.findElement(By.name("textinput"));
+ assertEquals("red", text.getCssValue("background-color"));
+ }
+
+ public void testGetCssValueReturnsNullWhenPropertyNotFound() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement text = mDriver.findElement(By.name("textinput"));
+ assertNull(text.getCssValue(INEXISTENT));
+ }
+
+ // getSize
+ public void testGetSize() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement text = mDriver.findElements(By.name("textinput")).get(0);
+ assertEquals(100, text.getSize().x);
+ assertEquals(50, text.getSize().y);
+ }
+
+ // getLocation
+ public void testGetLocation () {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement tag = mDriver.findElement(By.linkText("Tag A"));
+ assertEquals(8, tag.getLocation().x);
+ assertEquals(8, tag.getLocation().y);
+ }
+
+ // isDisplayed
+ public void testIsDisplayed() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement hidden = mDriver.findElement(By.id("fromage"));
+ assertFalse(hidden.isDisplayed());
+ WebElement checky = mDriver.findElement(By.id("checky"));
+ assertTrue(checky.isDisplayed());
+ }
+
+ // click
+ public void testClickOnWebElement() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement link = mDriver.findElement(By.id("inner"));
+ link.click();
+ assertEquals("test hello world", mDriver.getTitle());
+ }
+
+ // sendKeys
+ public void testSendKeys() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement type = mDriver.findElement(By.id("typehere"));
+ assertEquals("", type.getAttribute("value"));
+ type.sendKeys("hello");
+
+ assertEquals("hello", type.getAttribute("value"));
+ type.sendKeys(" ", "world", "!");
+ assertEquals("hello world!", type.getAttribute("value"));
+ }
+
+ // submit
+ public void testSubmit() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement link = mDriver.findElement(By.id("fromage"));
+ link.submit();
+ assertEquals("test hello world", mDriver.getTitle());
+ }
+
+ // clear
+ public void testClear() {
+ mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
+ WebElement type = mDriver.findElement(By.id("typehere"));
+ assertEquals("", type.getAttribute("value"));
+ type.sendKeys("hello");
+ assertEquals("hello", type.getAttribute("value"));
+ type.clear();
+ assertEquals("", type.getAttribute("value"));
+ }
+
// findElement
public void testFindElementThrowsIfNoPageIsLoaded() {
try {
mDriver.findElement(By.id(SOME_TEXT_ID));
fail();
- } catch (NullPointerException e) {
+ } catch (WebDriverException e) {
// this is expected
}
}
@@ -196,7 +303,7 @@
try {
mDriver.findElements(By.id(SOME_TEXT_ID));
fail();
- } catch (NullPointerException e) {
+ } catch (WebDriverException e) {
// this is expected
}
}
@@ -492,7 +599,7 @@
try {
mDriver.findElement(By.xpath("//a@" + ID + "=inexistant']"));
fail("This should have failed.");
- } catch (WebElementNotFoundException e) {
+ } catch (WebDriverException e) {
// This is expected
}
}
@@ -592,7 +699,7 @@
public void testExecuteScriptShouldReturnAString() {
mDriver.get(mWebServer.getAssetUrl(FORM_PAGE_URL));
Object result = mDriver.executeScript("return document.title");
- assertEquals("Test Page", (String) result);
+ assertEquals("Form Test Page", (String) result);
}
public void testExecuteScriptShouldReturnAWebElement() {
@@ -696,7 +803,7 @@
try {
mDriver.executeScript("return bou();");
fail("This should have failed");
- } catch (RuntimeException e) {
+ } catch (WebDriverException e) {
// This is expected.
}
}
@@ -778,7 +885,7 @@
try {
mDriver.executeScript("return arguments[0];", mDriver);
fail("This should have failed");
- } catch (RuntimeException e) {
+ } catch (IllegalArgumentException e) {
// This is expected.
}
}
@@ -797,7 +904,7 @@
try {
mDriver.executeScript("return 'bou';");
fail("This should have failed");
- } catch (RuntimeException e) {
+ } catch (WebDriverException e) {
// This is expected.
}
}