Bug 1422019 - Stand up initial GeckoView tests r=nalexander,jchen draft
authorJames Willcox <snorp@snorp.net>
Thu, 30 Nov 2017 09:55:24 -0600
changeset 757616 7d311c3ea15e9133259d27d128f392e78d768de2
parent 757615 2a938e9b775a5954dc144477fcbd72c5e6a6411c
child 757617 78ffad781013b86caa153e0c8715f4cec4c2329f
push id99800
push userbmo:snorp@snorp.net
push dateTue, 20 Feb 2018 22:22:10 +0000
reviewersnalexander, jchen
bugs1422019
milestone60.0a1
Bug 1422019 - Stand up initial GeckoView tests r=nalexander,jchen This adds a new geckoview_test module, which contains a test runner Activity. We can then use JUnit4 + Espresso to exercise the GeckoView APIs (such as GeckoSession). MozReview-Commit-ID: FEMAZhpasLW
mobile/android/geckoview/build.gradle
mobile/android/geckoview/src/androidTest/AndroidManifest.xml
mobile/android/geckoview/src/androidTest/assets/www/hello.html
mobile/android/geckoview/src/androidTest/assets/www/hello2.html
mobile/android/geckoview/src/androidTest/assets/www/newSession.html
mobile/android/geckoview/src/androidTest/assets/www/newSession_child.html
mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/BaseGeckoViewTest.java
mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationTests.java
mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/TestRunnerActivity.java
mobile/android/geckoview/src/androidTest/res/drawable/ic_launcher_background.xml
mobile/android/geckoview/src/androidTest/res/mipmap-hdpi/ic_launcher.png
mobile/android/geckoview/src/androidTest/res/mipmap-hdpi/ic_launcher_round.png
mobile/android/geckoview/src/androidTest/res/mipmap-mdpi/ic_launcher.png
mobile/android/geckoview/src/androidTest/res/mipmap-mdpi/ic_launcher_round.png
mobile/android/geckoview/src/androidTest/res/mipmap-xhdpi/ic_launcher.png
mobile/android/geckoview/src/androidTest/res/mipmap-xhdpi/ic_launcher_round.png
mobile/android/geckoview/src/androidTest/res/mipmap-xxhdpi/ic_launcher.png
mobile/android/geckoview/src/androidTest/res/mipmap-xxhdpi/ic_launcher_round.png
mobile/android/geckoview/src/androidTest/res/mipmap-xxxhdpi/ic_launcher.png
mobile/android/geckoview/src/androidTest/res/mipmap-xxxhdpi/ic_launcher_round.png
mobile/android/geckoview/src/androidTest/res/values/colors.xml
mobile/android/geckoview/src/androidTest/res/values/strings.xml
mobile/android/geckoview/src/androidTest/res/values/styles.xml
--- a/mobile/android/geckoview/build.gradle
+++ b/mobile/android/geckoview/build.gradle
@@ -45,16 +45,18 @@ android {
         targetSdkVersion project.ext.targetSdkVersion
         minSdkVersion project.ext.minSdkVersion
         manifestPlaceholders = project.ext.manifestPlaceholders
 
         versionCode computeVersionCode()
         versionName "${mozconfig.substs.MOZ_APP_VERSION}-${mozconfig.substs.MOZ_UPDATE_CHANNEL}"
         consumerProguardFiles 'proguard-rules.txt'
 
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
         // TODO: ensure these fields always agree with mobile/android/geckoview/BuildConfig.java.in,
         // either by diffing the processed files or by generating the output from a single source.
         buildConfigField 'String', "GRE_MILESTONE", "\"${mozconfig.substs.GRE_MILESTONE}\""
         // This should really come from the included binaries, but that's not easy.
         buildConfigField 'String', "MOZ_APP_ABI", mozconfig.substs['COMPILE_ENVIRONMENT'] ? "\"${ mozconfig.substs.TARGET_XPCOM_ABI}\"" : '"arm-eabi-gcc3"';
         buildConfigField 'String', "MOZ_APP_BASENAME", "\"${mozconfig.substs.MOZ_APP_BASENAME}\"";
 
         // For the benefit of future archaeologists:
@@ -147,16 +149,21 @@ android {
 
 dependencies {
     implementation "com.android.support:support-v4:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
     implementation "com.android.support:palette-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
 
     testImplementation 'junit:junit:4.12'
     testImplementation 'org.robolectric:robolectric:3.5.1'
     testImplementation 'org.mockito:mockito-core:1.10.19'
+
+    androidTestImplementation 'com.android.support.test:runner:0.5'
+    androidTestImplementation 'com.android.support.test:rules:0.5'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
+    androidTestImplementation "com.android.support:support-annotations:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
 }
 
 apply from: "${topsrcdir}/mobile/android/gradle/with_gecko_binaries.gradle"
 
 android.libraryVariants.all { variant ->
     // See the notes in mobile/android/app/build.gradle for details on including
     // Gecko binaries and the Omnijar.
     if ((variant.productFlavors*.name).contains('withGeckoBinaries')) {
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="org.mozilla.geckoview.test">
+
+    <application
+            android:allowBackup="true"
+            android:icon="@mipmap/ic_launcher"
+            android:label="@string/app_name"
+            android:supportsRtl="true"
+            android:theme="@style/AppTheme">
+        <activity android:name=".TestRunnerActivity" android:exported="true"/>
+        <activity-alias android:name=".App" android:targetActivity=".TestRunnerActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity-alias>
+    </application>
+
+</manifest>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/assets/www/hello.html
@@ -0,0 +1,6 @@
+<html>
+    <head><title>Hello, world!</title></head>
+    <body>
+        <p>Hello, world!</p>
+    </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/assets/www/hello2.html
@@ -0,0 +1,6 @@
+<html>
+<head><title>Hello, world! Again!</title></head>
+<body>
+<p>Hello, world! Again!</p>
+</body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/assets/www/newSession.html
@@ -0,0 +1,20 @@
+<html>
+    <head><title>Hello, world!</title></head>
+    <body>
+        <p id="message"></p>
+        <script>
+            const msg = document.getElementById('message');
+            msg.innerText = "Waiting for click...";
+            window.addEventListener('click', function() {
+                msg.innerText = "Opening window....";
+                try {
+                    const win = window.open('newSession_child.html');
+
+                    msg.innerText = "Opened window: " + win;
+                } catch(e) {
+                    msg.innerText = "Failed to open window: " + e;
+                }
+            });
+        </script>
+    </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/assets/www/newSession_child.html
@@ -0,0 +1,11 @@
+<html>
+    <head><title>Hello, world!</title></head>
+    <body>
+        <p>I'm the child</p>
+        <script>
+            setTimeout(function() {
+                window.close();
+            }, 1000);
+        </script>
+    </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/BaseGeckoViewTest.java
@@ -0,0 +1,118 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.geckoview.test;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.mozilla.gecko.GeckoSession;
+import org.mozilla.gecko.GeckoView;
+
+import android.net.Uri;
+import android.os.SystemClock;
+import android.support.test.espresso.Espresso;
+import android.support.test.espresso.IdlingResource;
+import android.support.test.espresso.assertion.ViewAssertions;
+import android.support.test.espresso.matcher.ViewMatchers;
+import android.support.test.rule.ActivityTestRule;
+import android.view.MotionEvent;
+
+import static org.junit.Assert.assertTrue;
+
+public class BaseGeckoViewTest {
+    protected GeckoSession mSession;
+    protected GeckoView mView;
+    private ExplicitIdlingResource mIdlingResource;
+
+    @Before
+    public void setup() {
+        mView = mActivityRule.getActivity().getGeckoView();
+        mSession = mActivityRule.getActivity().getGeckoSession();
+
+        mIdlingResource = new ExplicitIdlingResource();
+        Espresso.registerIdlingResources(mIdlingResource);
+    }
+
+    @After
+    public void tearDown() {
+        Espresso.unregisterIdlingResources(mIdlingResource);
+    }
+
+    @Rule
+    public ActivityTestRule<TestRunnerActivity> mActivityRule = new ActivityTestRule<>(
+            TestRunnerActivity.class);
+
+    protected void waitUntilDone() {
+        Espresso.onView(ViewMatchers.isRoot()).check(ViewAssertions.matches(ViewMatchers.isRoot()));
+    }
+
+    protected void done() {
+        mIdlingResource.done();
+    }
+
+    protected String buildAssetUrl(String path) {
+        return "resource://android/assets/www/" + path;
+    }
+
+    protected void loadTestPath(final String path, Runnable finished) {
+        loadTestPage(buildAssetUrl(path), finished);
+    }
+
+    protected void loadTestPage(final String url, final Runnable finished) {
+        final String path = Uri.parse(url).getPath();
+        mSession.setProgressListener(new GeckoSession.ProgressListener() {
+            @Override
+            public void onPageStart(GeckoSession session, String loadingUrl) {
+                assertTrue("Loaded url should end with " + path, loadingUrl.endsWith(path));
+            }
+
+            @Override
+            public void onPageStop(GeckoSession session, boolean success) {
+                assertTrue("Load should succeed", success);
+                mSession.setProgressListener(null);
+                finished.run();
+            }
+
+            @Override
+            public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+            }
+        });
+
+        mSession.loadUri(url);
+    }
+
+    protected void sendClick(int x, int y) {
+        mSession.getPanZoomController().onTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 5, 5, 0));
+        mSession.getPanZoomController().onTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 5, 5, 0));
+    }
+
+    private class ExplicitIdlingResource implements IdlingResource {
+        private boolean mIsIdle;
+        private ResourceCallback mCallback;
+
+        @Override
+        public String getName() {
+            return "Explicit Idling Resource";
+        }
+
+        @Override
+        public boolean isIdleNow() {
+            return mIsIdle;
+        }
+
+        public void done() {
+            mIsIdle = true;
+            if (mCallback != null) {
+                mCallback.onTransitionToIdle();
+            }
+        }
+
+        @Override
+        public void registerIdleTransitionCallback(ResourceCallback callback) {
+            mCallback = callback;
+        }
+    }
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationTests.java
@@ -0,0 +1,298 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.geckoview.test;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.gecko.GeckoSession;
+
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(AndroidJUnit4.class)
+public class NavigationTests extends BaseGeckoViewTest {
+    @Test
+    public void testLoadUri() {
+        loadTestPath("hello.html", new Runnable() {
+            @Override public void run() {
+                done();
+            }
+        });
+
+        waitUntilDone();
+    }
+
+    @Test
+    public void testGoBack() {
+        final String startPath = "hello.html";
+        loadTestPath(startPath, new Runnable() {
+            @Override public void run() {
+                loadTestPath("hello2.html", new Runnable() {
+                    @Override public void run() {
+                        mSession.setNavigationListener(new GeckoSession.NavigationListener() {
+                            @Override
+                            public void onLocationChange(GeckoSession session, String url) {
+                                assertTrue("URL should end with " + startPath + ", got " + url, url.endsWith(startPath));
+                                done();
+                            }
+
+                            @Override
+                            public void onCanGoBack(GeckoSession session, boolean canGoBack) {
+                                assertFalse("Should not be able to go back", canGoBack);
+                            }
+
+                            @Override
+                            public void onCanGoForward(GeckoSession session, boolean canGoForward) {
+                                assertTrue("Should be able to go forward", canGoForward);
+                            }
+
+                            @Override
+                            public boolean onLoadUri(GeckoSession session, String uri, TargetWindow where) {
+                                return false;
+                            }
+
+                            @Override
+                            public void onNewSession(GeckoSession session, String uri, GeckoSession.Response<GeckoSession> response) {
+                                response.respond(null);
+                            }
+                        });
+
+                        mSession.goBack();
+                    }
+                });
+            }
+        });
+
+        waitUntilDone();
+    }
+
+    @Test
+    public void testReload() {
+        loadTestPath("hello.html", new Runnable() {
+            @Override public void run() {
+                mSession.setProgressListener(new GeckoSession.ProgressListener() {
+                    @Override
+                    public void onPageStart(GeckoSession session, String url) {
+                    }
+
+                    @Override
+                    public void onPageStop(GeckoSession session, boolean success) {
+                        assertTrue(success);
+                        done();
+                    }
+
+                    @Override
+                    public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+
+                    }
+                });
+
+                mSession.reload();
+            }
+        });
+
+        waitUntilDone();
+    }
+
+    @Test
+    public void testExpiredCert() {
+        mSession.setProgressListener(new GeckoSession.ProgressListener() {
+            private boolean mNotBlank;
+
+            @Override
+            public void onPageStart(GeckoSession session, String url) {
+                mNotBlank = !url.equals("about:blank");
+            }
+
+            @Override
+            public void onPageStop(GeckoSession session, boolean success) {
+                if (mNotBlank) {
+                    assertFalse("Expected unsuccessful page load", success);
+                    done();
+                }
+            }
+
+            @Override
+            public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+                assertFalse(securityInfo.isSecure);
+                assertEquals(securityInfo.securityMode, SecurityInformation.SECURITY_MODE_UNKNOWN);
+            }
+        });
+
+        mSession.loadUri("https://expired.badssl.com/");
+        waitUntilDone();
+    }
+
+    @Test
+    public void testValidTLS() {
+        mSession.setProgressListener(new GeckoSession.ProgressListener() {
+            private boolean mNotBlank;
+
+            @Override
+            public void onPageStart(GeckoSession session, String url) {
+                mNotBlank = !url.equals("about:blank");
+            }
+
+            @Override
+            public void onPageStop(GeckoSession session, boolean success) {
+                if (mNotBlank) {
+                    assertTrue("Expected successful page load", success);
+                    done();
+                }
+            }
+
+            @Override
+            public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+                assertTrue(securityInfo.isSecure);
+                assertEquals(securityInfo.securityMode, SecurityInformation.SECURITY_MODE_IDENTIFIED);
+            }
+        });
+
+        mSession.loadUri("https://mozilla-modern.badssl.com/");
+        waitUntilDone();
+    }
+
+    @Test
+    public void testOnNewSession() {
+        mSession.setNavigationListener(new GeckoSession.NavigationListener() {
+            @Override
+            public void onLocationChange(GeckoSession session, String url) {
+            }
+
+            @Override
+            public void onCanGoBack(GeckoSession session, boolean canGoBack) {
+
+            }
+
+            @Override
+            public void onCanGoForward(GeckoSession session, boolean canGoForward) {
+
+            }
+
+            @Override
+            public boolean onLoadUri(GeckoSession session, String uri, TargetWindow where) {
+                return false;
+            }
+
+            @Override
+            public void onNewSession(GeckoSession session, String uri, GeckoSession.Response<GeckoSession> response) {
+                final GeckoSession newSession = new GeckoSession(session);
+                newSession.setContentListener(new GeckoSession.ContentListener() {
+                    @Override
+                    public void onTitleChange(GeckoSession session, String title) {
+
+                    }
+
+                    @Override
+                    public void onFocusRequest(GeckoSession session) {
+
+                    }
+
+                    @Override
+                    public void onCloseRequest(GeckoSession session) {
+                        session.closeWindow();
+                        done();
+                    }
+
+                    @Override
+                    public void onFullScreen(GeckoSession session, boolean fullScreen) {
+
+                    }
+
+                    @Override
+                    public void onContextMenu(GeckoSession session, int screenX, int screenY, String uri, String elementSrc) {
+
+                    }
+                });
+
+                newSession.openWindow(InstrumentationRegistry.getTargetContext());
+                response.respond(newSession);
+            }
+        });
+
+        mSession.setProgressListener(new GeckoSession.ProgressListener() {
+            @Override
+            public void onPageStart(GeckoSession session, String url) {
+
+            }
+
+            @Override
+            public void onPageStop(GeckoSession session, boolean success) {
+                // Send a click to open the window
+                sendClick(100, 100);
+            }
+
+            @Override
+            public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+
+            }
+        });
+
+
+        mSession.loadUri(buildAssetUrl("newSession.html"));
+
+        waitUntilDone();
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testOnNewSessionNoExisting() {
+        // This makes sure that we get an exception if you try to return
+        // an existing GeckoSession instance from the NavigationListener.onNewSession()
+        // implementation.
+
+        mSession.setNavigationListener(new GeckoSession.NavigationListener() {
+            @Override
+            public void onLocationChange(GeckoSession session, String url) {
+            }
+
+            @Override
+            public void onCanGoBack(GeckoSession session, boolean canGoBack) {
+
+            }
+
+            @Override
+            public void onCanGoForward(GeckoSession session, boolean canGoForward) {
+
+            }
+
+            @Override
+            public boolean onLoadUri(GeckoSession session, String uri, TargetWindow where) {
+                return false;
+            }
+
+            @Override
+            public void onNewSession(GeckoSession session, String uri, GeckoSession.Response<GeckoSession> response) {
+                // This is where the throw should occur
+                response.respond(mSession);
+            }
+        });
+
+        mSession.setProgressListener(new GeckoSession.ProgressListener() {
+            @Override
+            public void onPageStart(GeckoSession session, String url) {
+
+            }
+
+            @Override
+            public void onPageStop(GeckoSession session, boolean success) {
+                sendClick(100, 100);
+            }
+
+            @Override
+            public void onSecurityChange(GeckoSession session, SecurityInformation securityInfo) {
+
+            }
+        });
+
+
+        mSession.loadUri(buildAssetUrl("newSession.html"));
+        waitUntilDone();
+    }
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/TestRunnerActivity.java
@@ -0,0 +1,139 @@
+package org.mozilla.geckoview.test;
+
+import org.mozilla.gecko.GeckoSession;
+import org.mozilla.gecko.GeckoSessionSettings;
+import org.mozilla.gecko.GeckoView;
+import org.mozilla.gecko.mozglue.GeckoLoader;
+import org.mozilla.gecko.mozglue.SafeIntent;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class TestRunnerActivity extends Activity {
+    private static final String LOGTAG = "TestRunnerActivity";
+
+    GeckoSession mSession;
+    GeckoView mView;
+
+    private GeckoSession.NavigationListener mNavigationListener = new GeckoSession.NavigationListener() {
+        @Override
+        public void onLocationChange(GeckoSession session, String url) {
+            getActionBar().setSubtitle(url);
+        }
+
+        @Override
+        public void onCanGoBack(GeckoSession session, boolean canGoBack) {
+
+        }
+
+        @Override
+        public void onCanGoForward(GeckoSession session, boolean canGoForward) {
+
+        }
+
+        @Override
+        public boolean onLoadUri(GeckoSession session, String uri, TargetWindow where) {
+            // Allow Gecko to load all URIs
+            return false;
+        }
+
+        @Override
+        public void onNewSession(GeckoSession session, String uri, GeckoSession.Response<GeckoSession> response) {
+            response.respond(createSession(session.getSettings()));
+        }
+    };
+
+    private GeckoSession.ContentListener mContentListener = new GeckoSession.ContentListener() {
+        @Override
+        public void onTitleChange(GeckoSession session, String title) {
+
+        }
+
+        @Override
+        public void onFocusRequest(GeckoSession session) {
+
+        }
+
+        @Override
+        public void onCloseRequest(GeckoSession session) {
+            session.closeWindow();
+        }
+
+        @Override
+        public void onFullScreen(GeckoSession session, boolean fullScreen) {
+
+        }
+
+        @Override
+        public void onContextMenu(GeckoSession session, int screenX, int screenY, String uri, String elementSrc) {
+
+        }
+    };
+
+    private GeckoSession createSession() {
+        return createSession(null);
+    }
+
+    private GeckoSession createSession(GeckoSessionSettings settings) {
+        if (settings == null) {
+            settings = new GeckoSessionSettings();
+
+            // We can't use e10s because we get deadlocked when quickly creating and
+            // destroying sessions. Bug 1348361.
+            settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
+        }
+
+        final GeckoSession session = new GeckoSession(settings);
+        session.setNavigationListener(mNavigationListener);
+        session.openWindow(this);
+        return session;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Intent intent = getIntent();
+        GeckoLoader.setLastIntent(new SafeIntent(getIntent()));
+
+        final String intentArgs = intent.getStringExtra("args");
+        final String args = intentArgs != null ? "-purgecaches " + intentArgs : "-purgecaches";
+        GeckoSession.preload(this, args, false /* no multiprocess, see below */);
+
+        // We can't use e10s because we get deadlocked when quickly creating and
+        // destroying sessions. Bug 1348361.
+        mSession = createSession();
+
+        // If we were passed a URI in the Intent, open it
+        final Uri uri = intent.getData();
+        if (uri != null) {
+            mSession.loadUri(uri);
+        }
+
+        mView = new GeckoView(this);
+        mView.setSession(mSession);
+        setContentView(mView);
+    }
+
+    @Override
+    protected void onDestroy() {
+        mSession.closeWindow();
+        super.onDestroy();
+    }
+
+    public GeckoView getGeckoView() {
+        return mView;
+    }
+
+    public GeckoSession getGeckoSession() {
+        return mSession;
+    }
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<vector
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:height="108dp"
+        android:width="108dp"
+        android:viewportHeight="108"
+        android:viewportWidth="108">
+    <path android:fillColor="#26A69A"
+          android:pathData="M0,0h108v108h-108z"/>
+    <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>
new file mode 100644
index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1
GIT binary patch
literal 3056
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
new file mode 100644
index 0000000000000000000000000000000000000000..1b523998081149a985cef0cdf89045b9ed29964a
GIT binary patch
literal 5024
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
new file mode 100644
index 0000000000000000000000000000000000000000..ff10afd6e182edb2b1a63c8f984e9070d9f950ba
GIT binary patch
literal 2096
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
axPAxe%7rDusX+w*0000<MNUMnLSTa3f$up0
new file mode 100644
index 0000000000000000000000000000000000000000..115a4c768a20c9e13185c17043f4c4d12dd4632a
GIT binary patch
literal 2858
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
IM6N<$f{l1_%m4rY
new file mode 100644
index 0000000000000000000000000000000000000000..dcd3cd8083358269d6ed7894726283bb9bcbbfea
GIT binary patch
literal 4569
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
D5i!M*
new file mode 100644
index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7
GIT binary patch
literal 7098
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
new file mode 100644
index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6
GIT binary patch
literal 6464
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
B0*L?s
new file mode 100644
index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec
GIT binary patch
literal 10676
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
a9sdtN6eHRrdyqB&0000<MNUMnLSTYHIB(_v
new file mode 100644
index 0000000000000000000000000000000000000000..b824ebdd48db917eea2e67a82260a100371f8a24
GIT binary patch
literal 9250
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
new file mode 100644
index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee
GIT binary patch
literal 15523
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
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/res/values/colors.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+    <color name="colorPrimary">#3F51B5</color>
+    <color name="colorPrimaryDark">#303F9F</color>
+    <color name="colorAccent">#FF4081</color>
+</resources>
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+    <string name="app_name">GeckoView Test Runner</string>
+</resources>
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/res/values/styles.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<resources>
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+        <!-- Customize your theme here. -->
+    </style>
+</resources>