diff --git a/src/test/java/io/appium/java_client/AppiumDriverTest.java b/src/test/java/io/appium/java_client/AppiumDriverTest.java new file mode 100644 index 000000000..8a4b9ea82 --- /dev/null +++ b/src/test/java/io/appium/java_client/AppiumDriverTest.java @@ -0,0 +1,107 @@ +/* + +Copyright 2014 Appium contributors + +Copyright 2014 Software Freedom Conservancy + + + +Licensed under the Apache License, Version 2.0 (the "License"); + +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at + + + + http://www.apache.org/licenses/LICENSE-2.0 + + + +Unless required by applicable law or agreed to in writing, software + +distributed under the License is distributed on an "AS IS" BASIS, + +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +See the License for the specific language governing permissions and + +limitations under the License. + + */ + +package io.appium.java_client; + +import io.appium.java_client.ios.IOSDriver; +import io.appium.java_client.remote.MobileCapabilityType; +import io.appium.java_client.remote.MobilePlatform; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.openqa.selenium.ScreenOrientation; +import org.openqa.selenium.html5.Location; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.io.File; +import java.net.URL; + +import static org.junit.Assert.assertEquals; + +/** + * Test Mobile Driver features + */ +public class AppiumDriverTest { + + private AppiumDriver driver; + + @Before + public void setup() throws Exception { + File appDir = new File("src/test/java/io/appium/java_client"); + File app = new File(appDir, "UICatalog.app.zip"); + DesiredCapabilities capabilities = new DesiredCapabilities(); + capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, ""); + capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1"); + capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS); + capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator"); + capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); + driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); + } + + @After + public void tearDown() throws Exception { + driver.quit(); + } + + @Test + public void resetTest() { + driver.resetApp(); + } + + @Test + public void setValueTest() { + MobileElement element = (MobileElement)driver.findElementByAccessibilityId("TextFields, Uses of UITextField"); + element.click(); + element = (MobileElement)driver.findElementByAccessibilityId("Normal"); + element.setValue("Grace Hopper"); + } + + @Test + public void pullFileTest() { + byte[] data = driver.pullFile("Library/AddressBook/AddressBook.sqlitedb"); + assert(data.length > 0); + } + + //TODO hideKeyboard() test + + @Test + public void runAppInBackgroundTest() { + long time = System.currentTimeMillis(); + driver.runAppInBackground(4); + long timeAfter = System.currentTimeMillis(); + assert(timeAfter - time > 3000); + } + + @Test + public void lockTest() { + driver.lockScreen(3); + } + + @Test + public void orientationTest() { + assertEquals(ScreenOrientation.PORTRAIT, driver.getOrientation()); + driver.rotate(ScreenOrientation.LANDSCAPE); + assertEquals(ScreenOrientation.LANDSCAPE, driver.getOrientation()); + } + + @Test + public void geolocationTest() { + Location location = new Location(45, 45, 100); + driver.setLocation(location); + } + +} diff --git a/src/test/java/io/appium/java_client/ios/IOSContextTest.java b/src/test/java/io/appium/java_client/ContextTest.java similarity index 97% rename from src/test/java/io/appium/java_client/ios/IOSContextTest.java rename to src/test/java/io/appium/java_client/ContextTest.java index e14ecc612..cef95a3d8 100644 --- a/src/test/java/io/appium/java_client/ios/IOSContextTest.java +++ b/src/test/java/io/appium/java_client/ContextTest.java @@ -15,7 +15,7 @@ +limitations under the License. + */ -package io.appium.java_client.ios; +package io.appium.java_client; import static org.junit.Assert.assertEquals; import io.appium.java_client.AppiumDriver; @@ -34,7 +34,7 @@ /** * Test context-related features */ -public class IOSContextTest { +public class ContextTest { private AppiumDriver driver; diff --git a/src/test/java/io/appium/java_client/android/AndroidContextTest.java b/src/test/java/io/appium/java_client/android/AndroidContextTest.java deleted file mode 100644 index c9aaeb235..000000000 --- a/src/test/java/io/appium/java_client/android/AndroidContextTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package io.appium.java_client.android; - -import static org.junit.Assert.assertEquals; -import io.appium.java_client.AppiumDriver; -import io.appium.java_client.NoSuchContextException; -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.remote.MobileCapabilityType; - -import java.io.File; -import java.net.URL; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.openqa.selenium.By; -import org.openqa.selenium.remote.DesiredCapabilities; - -public class AndroidContextTest { - - private AppiumDriver driver; - - @Before - public void setUp() throws Exception { - File appDir = new File("src/test/java/io/appium/java_client"); - File app = new File(appDir, "selendroid-test-app-0.9.0.apk"); - DesiredCapabilities capabilities = new DesiredCapabilities(); - capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator"); - capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); - capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Selendroid"); - capabilities.setCapability(MobileCapabilityType.SELENDROID_PORT, "5000"); - - //TODO When Selendroid is launched there is no possibility to change activity - //TODO To be investigated. Is it bug? - - //capabilities.setCapability(MobileCapabilityType.APP_PACKAGE,"io.selendroid.testapp"); - //capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY,"WebViewActivity"); - driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), - capabilities); - - //TODO this is workaround to run the test. - driver.findElement(By.id("buttonStartWebview")).click(); - } - - @After - public void tearDown() throws Exception { - driver.quit(); - } - - @Test - public void testGetContext() { - boolean assertion = driver.getContext() == null; - assert (assertion); - } - - @Test - public void testGetContextHandles() { - assertEquals(driver.getContextHandles().size(), 2); - } - - @Test - public void testSwitchContext() { - driver.getContextHandles(); - driver.context("WEBVIEW_0"); - assertEquals(driver.getContext(), "WEBVIEW_0"); - } - - @Test(expected = NoSuchContextException.class) - public void testContextError() { - driver.context("This is the fake context! Ha-ha-ha >:("); - } - -} diff --git a/src/test/java/io/appium/java_client/selendroid-test-app-0.9.0.apk b/src/test/java/io/appium/java_client/selendroid-test-app-0.9.0.apk deleted file mode 100644 index a7b39a96c..000000000 Binary files a/src/test/java/io/appium/java_client/selendroid-test-app-0.9.0.apk and /dev/null differ