am 9c1a21bc: am 8af013a3: am 77eb7290: am 72604e38: am bd914e49: am e78365c9: Try reading every file on /sys

# Via Android Git Automerger (5) and Nick Kralevich (1)
* commit '9c1a21bc73883475b8e739018b53d71fb1c74002':
  Try reading every file on /sys
diff --git a/tests/assets/webkit/jswindow.html b/tests/assets/webkit/jswindow.html
index 534a683..7075d6e 100644
--- a/tests/assets/webkit/jswindow.html
+++ b/tests/assets/webkit/jswindow.html
@@ -23,7 +23,6 @@
             childWindow = window.open();
             childWindow.document.title = "javascript child window";
             childWindow.document.write("javascript child window");
-            childWindow.focus();
             setTimeout(function(){childWindow.close();}, 2000);
         }
     </script>
diff --git a/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java b/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
index d58336d..beb3621 100644
--- a/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
@@ -62,7 +62,7 @@
 
         assertEquals(Color.GREEN, b.getPixel(BASE_SIZE / 2, BASE_SIZE / 2));
         assertEquals(Color.RED, b.getPixel(BASE_SIZE + BASE_SIZE / 2, BASE_SIZE / 2));
-        assertEquals(Color.CYAN, b.getPixel(BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
+        assertEquals(Color.BLUE, b.getPixel(BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
         assertEquals(Color.BLACK, b.getPixel(BASE_SIZE + BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
     }
 }
diff --git a/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java b/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
index 2fcf53c..52e9278 100644
--- a/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
@@ -28,6 +28,11 @@
 
     private static final long TIMEOUT = 10000;
 
+    private static final String WRONG_USERNAME = "wrong_user";
+    private static final String WRONG_PASSWORD = "wrong_password";
+    private static final String CORRECT_USERNAME = CtsTestServer.AUTH_USER;
+    private static final String CORRECT_PASSWORD = CtsTestServer.AUTH_PASS;
+
     private CtsTestServer mWebServer;
     private WebViewOnUiThread mOnUiThread;
 
@@ -50,64 +55,18 @@
         super.tearDown();
     }
 
-    public void testProceed() throws Exception {
-        mWebServer = new CtsTestServer(getActivity());
-        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-
-        // wrong credentials
-        MyWebViewClient client = new MyWebViewClient(true, "FakeUser", "FakePass");
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-
-        // missing credentials
-        client = new MyWebViewClient(true, null, null);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(
-                CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-
-        // correct credentials
-        client = new MyWebViewClient(true, CtsTestServer.AUTH_USER, CtsTestServer.AUTH_PASS);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-    }
-
-    public void testCancel() throws Exception {
-        mWebServer = new CtsTestServer(getActivity());
-
-        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        MyWebViewClient client = new MyWebViewClient(false, null, null);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(
-                CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-    }
-
-    private class MyWebViewClient extends WaitForLoadedClient {
+    private class ProceedHttpAuthClient extends WaitForLoadedClient {
         String realm;
         boolean useHttpAuthUsernamePassword;
 
-        private boolean mProceed;
+        private int mMaxAuthAttempts;
         private String mUser;
         private String mPassword;
         private int mAuthCount;
 
-        MyWebViewClient(boolean proceed, String user, String password) {
+        ProceedHttpAuthClient(int maxAuthAttempts, String user, String password) {
             super(mOnUiThread);
-            mProceed = proceed;
+            mMaxAuthAttempts = maxAuthAttempts;
             mUser = user;
             mPassword = password;
         }
@@ -115,18 +74,113 @@
         @Override
         public void onReceivedHttpAuthRequest(WebView view,
                 HttpAuthHandler handler, String host, String realm) {
-            ++mAuthCount;
-            if (mAuthCount > 1) {
+            if (++mAuthCount > mMaxAuthAttempts) {
                 handler.cancel();
                 return;
             }
+
             this.realm = realm;
             this.useHttpAuthUsernamePassword = handler.useHttpAuthUsernamePassword();
-            if (mProceed) {
-                handler.proceed(mUser, mPassword);
-            } else {
-                handler.cancel();
-            }
+
+            handler.proceed(mUser, mPassword);
         }
     }
+
+    private class CancelHttpAuthClient extends WaitForLoadedClient {
+        String realm;
+
+        CancelHttpAuthClient() {
+            super(mOnUiThread);
+        }
+
+        @Override
+        public void onReceivedHttpAuthRequest(WebView view,
+                HttpAuthHandler handler, String host, String realm) {
+            this.realm = realm;
+            handler.cancel();
+        }
+    }
+
+    private void incorrectCredentialsAccessDenied(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing incorrect credentials, the page should complete but at
+        // an access denied page.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    private void missingCredentialsAccessDenied(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, null, null);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing no credentials, the page should complete but at
+        // an access denied page.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    private void correctCredentialsAccessGranted(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, CORRECT_USERNAME, CORRECT_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing valid credentials, the page should complete and
+        // at the page we requested.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
+    }
+
+    public void testProceed() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        incorrectCredentialsAccessDenied(url);
+        missingCredentialsAccessDenied(url);
+        correctCredentialsAccessGranted(url);
+    }
+
+    public void testCancel() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        CancelHttpAuthClient client = new CancelHttpAuthClient();
+        mOnUiThread.setWebViewClient(client);
+
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    public void testUseHttpAuthUsernamePassword() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        // Try to login once with incorrect credentials. This should cause
+        // useHttpAuthUsernamePassword to be true in the callback, as at that point
+        // we don't yet know that the credentials we will use are invalid.
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+        assertTrue(client.useHttpAuthUsernamePassword);
+
+        // Try to login twice with invalid credentials. This should cause
+        // useHttpAuthUsernamePassword to return false, as the credentials
+        // we would have stored on the first auth request
+        // are not suitable for use the second time.
+        client = new ProceedHttpAuthClient(2, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+        assertFalse(client.useHttpAuthUsernamePassword);
+    }
 }
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
index 4a536b8..422c8fb 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
@@ -20,6 +20,7 @@
 import android.graphics.Bitmap;
 import android.os.Message;
 import android.test.ActivityInstrumentationTestCase2;
+import android.view.ViewGroup;
 import android.webkit.JsPromptResult;
 import android.webkit.JsResult;
 import android.webkit.WebIconDatabase;
@@ -27,7 +28,6 @@
 import android.webkit.WebView;
 import android.webkit.cts.WebViewOnUiThread.WaitForProgressClient;
 
-
 public class WebChromeClientTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
     private static final long TEST_TIMEOUT = 5000L;
 
@@ -132,8 +132,8 @@
 
         assertFalse(webChromeClient.hadOnCreateWindow());
 
-        // load a page that opens a child window, requests focus for the child and sets a timeout
-        // after which the child will be closed
+        // Load a page that opens a child window and sets a timeout after which the child
+        // will be closed.
         mOnUiThread.loadUrlAndWaitForCompletion(mWebServer.
                 getAssetUrl(TestHtmlConstants.JS_WINDOW_URL));
 
@@ -143,7 +143,6 @@
                 return webChromeClient.hadOnCreateWindow();
             }
         }.run();
-        assertFalse(webChromeClient.hadOnRequestFocus());
         new PollingCheck(TEST_TIMEOUT) {
             @Override
             protected boolean check() {
@@ -388,6 +387,8 @@
             transport.setWebView(childView);
             resultMsg.sendToTarget();
             mHadOnCreateWindow = true;
+            getActivity().addContentView(childView, new ViewGroup.LayoutParams(
+                    ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
             return true;
         }