OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.android_webview.test; | 5 package org.chromium.android_webview.test; |
6 | 6 |
7 import android.test.suitebuilder.annotation.SmallTest; | 7 import android.test.suitebuilder.annotation.SmallTest; |
8 import android.util.Log; | 8 import android.util.Log; |
9 | 9 |
| 10 import org.chromium.android_webview.AwContents; |
10 import org.chromium.android_webview.AwWebContentsDelegate; | 11 import org.chromium.android_webview.AwWebContentsDelegate; |
11 import org.chromium.base.test.util.Feature; | 12 import org.chromium.base.test.util.Feature; |
12 import org.chromium.content.browser.ContentViewCore; | |
13 | 13 |
14 /** | 14 /** |
15 * Tests for the ContentViewClient.addMessageToConsole() method. | 15 * Tests for the ContentViewClient.addMessageToConsole() method. |
16 */ | 16 */ |
17 public class ClientAddMessageToConsoleTest extends AndroidWebViewTestBase { | 17 public class ClientAddMessageToConsoleTest extends AndroidWebViewTestBase { |
18 | 18 |
19 // Line number at which the console message is logged in the page returned b
y the | 19 // Line number at which the console message is logged in the page returned b
y the |
20 // getLogMessageJavaScriptData method. | 20 // getLogMessageJavaScriptData method. |
21 private static final int LOG_MESSAGE_JAVASCRIPT_DATA_LINE_NUMBER = 4; | 21 private static final int LOG_MESSAGE_JAVASCRIPT_DATA_LINE_NUMBER = 4; |
22 | 22 |
23 private static final String TEST_MESSAGE_ONE = "Test message one."; | 23 private static final String TEST_MESSAGE_ONE = "Test message one."; |
24 private static final String TEST_MESSAGE_TWO = "The second test message."; | 24 private static final String TEST_MESSAGE_TWO = "The second test message."; |
25 | 25 |
26 private TestAwContentsClient mContentsClient; | 26 private TestAwContentsClient mContentsClient; |
27 private ContentViewCore mContentViewCore; | 27 private AwContents mAwContents; |
28 | 28 |
29 @Override | 29 @Override |
30 public void setUp() throws Exception { | 30 public void setUp() throws Exception { |
31 super.setUp(); | 31 super.setUp(); |
32 mContentsClient = new TestAwContentsClient(); | 32 mContentsClient = new TestAwContentsClient(); |
33 mContentViewCore = | 33 final AwTestContainerView testContainerView = |
34 createAwTestContainerViewOnMainSync(mContentsClient).getContentV
iewCore(); | 34 createAwTestContainerViewOnMainSync(mContentsClient); |
| 35 mAwContents = testContainerView.getAwContents(); |
35 | 36 |
36 getInstrumentation().runOnMainSync(new Runnable() { | 37 getInstrumentation().runOnMainSync(new Runnable() { |
37 @Override | 38 @Override |
38 public void run() { | 39 public void run() { |
39 mContentViewCore.getContentSettings().setJavaScriptEnabled(true)
; | 40 mAwContents.getContentViewCore().getContentSettings().setJavaScr
iptEnabled(true); |
40 } | 41 } |
41 }); | 42 }); |
42 } | 43 } |
43 | 44 |
44 private static String getLogMessageJavaScriptData(String consoleLogMethod, S
tring message) { | 45 private static String getLogMessageJavaScriptData(String consoleLogMethod, S
tring message) { |
45 // The %0A sequence is an encoded newline and is needed to test the sour
ce line number. | 46 // The %0A sequence is an encoded newline and is needed to test the sour
ce line number. |
46 return "<html>%0A" + | 47 return "<html>%0A" + |
47 "<body>%0A" + | 48 "<body>%0A" + |
48 "<script>%0A" + | 49 "<script>%0A" + |
49 "console." + consoleLogMethod + "('" + message + "');%0A"
+ | 50 "console." + consoleLogMethod + "('" + message + "');%0A"
+ |
50 "</script>%0A" + | 51 "</script>%0A" + |
51 "<div>%0A" + | 52 "<div>%0A" + |
52 "Logging the message [" + message + "] using console." + c
onsoleLogMethod + | 53 "Logging the message [" + message + "] using console." + c
onsoleLogMethod + |
53 " method. " + | 54 " method. " + |
54 "</div>%0A" + | 55 "</div>%0A" + |
55 "</body>%0A" + | 56 "</body>%0A" + |
56 "</html>"; | 57 "</html>"; |
57 } | 58 } |
58 | 59 |
59 @SmallTest | 60 @SmallTest |
60 @Feature({"Android-WebView"}) | 61 @Feature({"Android-WebView"}) |
61 public void testAddMessageToConsoleCalledWithCorrectLevel() throws Throwable
{ | 62 public void testAddMessageToConsoleCalledWithCorrectLevel() throws Throwable
{ |
62 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= | 63 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= |
63 mContentsClient.getAddMessageToConsoleHelper(); | 64 mContentsClient.getAddMessageToConsoleHelper(); |
64 | 65 |
65 int callCount = addMessageToConsoleHelper.getCallCount(); | 66 int callCount = addMessageToConsoleHelper.getCallCount(); |
66 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 67 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
67 getLogMessageJavaScriptData("error", "msg"), | 68 getLogMessageJavaScriptData("error", "msg"), |
68 "text/html", false); | 69 "text/html", false); |
69 addMessageToConsoleHelper.waitForCallback(callCount); | 70 addMessageToConsoleHelper.waitForCallback(callCount); |
70 assertEquals(AwWebContentsDelegate.LOG_LEVEL_ERROR , | 71 assertEquals(AwWebContentsDelegate.LOG_LEVEL_ERROR , |
71 addMessageToConsoleHelper.getLevel()); | 72 addMessageToConsoleHelper.getLevel()); |
72 | 73 |
73 callCount = addMessageToConsoleHelper.getCallCount(); | 74 callCount = addMessageToConsoleHelper.getCallCount(); |
74 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 75 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
75 getLogMessageJavaScriptData("warn", "msg"), | 76 getLogMessageJavaScriptData("warn", "msg"), |
76 "text/html", false); | 77 "text/html", false); |
77 addMessageToConsoleHelper.waitForCallback(callCount); | 78 addMessageToConsoleHelper.waitForCallback(callCount); |
78 assertEquals(AwWebContentsDelegate.LOG_LEVEL_WARNING , | 79 assertEquals(AwWebContentsDelegate.LOG_LEVEL_WARNING , |
79 addMessageToConsoleHelper.getLevel()); | 80 addMessageToConsoleHelper.getLevel()); |
80 | 81 |
81 callCount = addMessageToConsoleHelper.getCallCount(); | 82 callCount = addMessageToConsoleHelper.getCallCount(); |
82 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 83 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
83 getLogMessageJavaScriptData("log", "msg"), | 84 getLogMessageJavaScriptData("log", "msg"), |
84 "text/html", false); | 85 "text/html", false); |
85 addMessageToConsoleHelper.waitForCallback(callCount); | 86 addMessageToConsoleHelper.waitForCallback(callCount); |
86 assertEquals(AwWebContentsDelegate.LOG_LEVEL_LOG , | 87 assertEquals(AwWebContentsDelegate.LOG_LEVEL_LOG , |
87 addMessageToConsoleHelper.getLevel()); | 88 addMessageToConsoleHelper.getLevel()); |
88 | 89 |
89 // Can't test LOG_LEVEL_TIP as there's no way to generate a message at t
hat log level | 90 // Can't test LOG_LEVEL_TIP as there's no way to generate a message at t
hat log level |
90 // directly using JavaScript. | 91 // directly using JavaScript. |
91 } | 92 } |
92 | 93 |
93 @SmallTest | 94 @SmallTest |
94 @Feature({"Android-WebView"}) | 95 @Feature({"Android-WebView"}) |
95 public void testAddMessageToConsoleCalledWithCorrectMessage() throws Throwab
le { | 96 public void testAddMessageToConsoleCalledWithCorrectMessage() throws Throwab
le { |
96 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= | 97 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= |
97 mContentsClient.getAddMessageToConsoleHelper(); | 98 mContentsClient.getAddMessageToConsoleHelper(); |
98 | 99 |
99 int callCount = addMessageToConsoleHelper.getCallCount(); | 100 int callCount = addMessageToConsoleHelper.getCallCount(); |
100 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 101 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
101 getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE), | 102 getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE), |
102 "text/html", false); | 103 "text/html", false); |
103 Log.w("test", getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE)); | 104 Log.w("test", getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE)); |
104 addMessageToConsoleHelper.waitForCallback(callCount); | 105 addMessageToConsoleHelper.waitForCallback(callCount); |
105 assertEquals(TEST_MESSAGE_ONE, addMessageToConsoleHelper.getMessage()); | 106 assertEquals(TEST_MESSAGE_ONE, addMessageToConsoleHelper.getMessage()); |
106 | 107 |
107 callCount = addMessageToConsoleHelper.getCallCount(); | 108 callCount = addMessageToConsoleHelper.getCallCount(); |
108 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 109 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
109 getLogMessageJavaScriptData("log", TEST_MESSAGE_TWO), | 110 getLogMessageJavaScriptData("log", TEST_MESSAGE_TWO), |
110 "text/html", false); | 111 "text/html", false); |
111 addMessageToConsoleHelper.waitForCallback(callCount); | 112 addMessageToConsoleHelper.waitForCallback(callCount); |
112 assertEquals(TEST_MESSAGE_TWO, addMessageToConsoleHelper.getMessage()); | 113 assertEquals(TEST_MESSAGE_TWO, addMessageToConsoleHelper.getMessage()); |
113 } | 114 } |
114 | 115 |
115 @SmallTest | 116 @SmallTest |
116 @Feature({"Android-WebView"}) | 117 @Feature({"Android-WebView"}) |
117 public void testAddMessageToConsoleCalledWithCorrectLineAndSource() throws T
hrowable { | 118 public void testAddMessageToConsoleCalledWithCorrectLineAndSource() throws T
hrowable { |
118 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= | 119 TestAwContentsClient.AddMessageToConsoleHelper addMessageToConsoleHelper
= |
119 mContentsClient.getAddMessageToConsoleHelper(); | 120 mContentsClient.getAddMessageToConsoleHelper(); |
120 | 121 |
121 int callCount = addMessageToConsoleHelper.getCallCount(); | 122 int callCount = addMessageToConsoleHelper.getCallCount(); |
122 String data = getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE); | 123 String data = getLogMessageJavaScriptData("log", TEST_MESSAGE_ONE); |
123 loadDataSync(mContentViewCore, mContentsClient.getOnPageFinishedHelper()
, | 124 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
124 data, "text/html", false); | 125 data, "text/html", false); |
125 addMessageToConsoleHelper.waitForCallback(callCount); | 126 addMessageToConsoleHelper.waitForCallback(callCount); |
126 assertTrue("Url [" + addMessageToConsoleHelper.getSourceId() + "] expect
ed to end with [" + | 127 assertTrue("Url [" + addMessageToConsoleHelper.getSourceId() + "] expect
ed to end with [" + |
127 data + "].", addMessageToConsoleHelper.getSourceId().endsWith
(data)); | 128 data + "].", addMessageToConsoleHelper.getSourceId().endsWith
(data)); |
128 assertEquals(LOG_MESSAGE_JAVASCRIPT_DATA_LINE_NUMBER, | 129 assertEquals(LOG_MESSAGE_JAVASCRIPT_DATA_LINE_NUMBER, |
129 addMessageToConsoleHelper.getLineNumber()); | 130 addMessageToConsoleHelper.getLineNumber()); |
130 } | 131 } |
131 } | 132 } |
OLD | NEW |