OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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.content.browser; | 5 package org.chromium.content.browser; |
6 | 6 |
7 import android.support.test.filters.SmallTest; | 7 import android.support.test.filters.SmallTest; |
8 | 8 |
| 9 import org.junit.Assert; |
| 10 import org.junit.Before; |
| 11 import org.junit.Rule; |
| 12 import org.junit.Test; |
| 13 import org.junit.runner.RunWith; |
| 14 |
9 import org.chromium.base.annotations.SuppressFBWarnings; | 15 import org.chromium.base.annotations.SuppressFBWarnings; |
| 16 import org.chromium.base.test.BaseJUnit4ClassRunner; |
10 import org.chromium.base.test.util.Feature; | 17 import org.chromium.base.test.util.Feature; |
11 import org.chromium.content.browser.JavaBridgeTestCommon.Controller; | 18 import org.chromium.content.browser.JavaBridgeTestCommon.Controller; |
12 | 19 |
13 /** | 20 /** |
14 * Part of the test suite for the Java Bridge. This test tests the | 21 * Part of the test suite for the Java Bridge. This test tests the |
15 * use of fields. | 22 * use of fields. |
16 */ | 23 */ |
17 public class JavaBridgeFieldsTest extends JavaBridgeTestBase { | 24 @RunWith(BaseJUnit4ClassRunner.class) |
| 25 public class JavaBridgeFieldsTest { |
| 26 @Rule |
| 27 public JavaBridgeActivityTestRule mActivityTestRule = new JavaBridgeActivity
TestRule(); |
| 28 |
18 @SuppressFBWarnings({"CHROMIUM_SYNCHRONIZED_METHOD", "URF_UNREAD_PUBLIC_OR_P
ROTECTED_FIELD"}) | 29 @SuppressFBWarnings({"CHROMIUM_SYNCHRONIZED_METHOD", "URF_UNREAD_PUBLIC_OR_P
ROTECTED_FIELD"}) |
19 private static class TestObject extends Controller { | 30 private static class TestObject extends Controller { |
20 private String mStringValue; | 31 private String mStringValue; |
21 | 32 |
22 // These methods are used to control the test. | 33 // These methods are used to control the test. |
23 public synchronized void setStringValue(String x) { | 34 public synchronized void setStringValue(String x) { |
24 mStringValue = x; | 35 mStringValue = x; |
25 notifyResultIsReady(); | 36 notifyResultIsReady(); |
26 } | 37 } |
27 public synchronized String waitForStringValue() { | 38 public synchronized String waitForStringValue() { |
(...skipping 13 matching lines...) Expand all Loading... |
41 public Object objectField = new Object(); | 52 public Object objectField = new Object(); |
42 public CustomType customTypeField = new CustomType(); | 53 public CustomType customTypeField = new CustomType(); |
43 } | 54 } |
44 | 55 |
45 // A custom type used when testing passing objects. | 56 // A custom type used when testing passing objects. |
46 private static class CustomType { | 57 private static class CustomType { |
47 } | 58 } |
48 | 59 |
49 TestObject mTestObject; | 60 TestObject mTestObject; |
50 | 61 |
51 @Override | 62 @Before |
52 protected void setUp() throws Exception { | 63 public void setUp() throws Exception { |
53 super.setUp(); | |
54 mTestObject = new TestObject(); | 64 mTestObject = new TestObject(); |
55 injectObjectAndReload(mTestObject, "testObject"); | 65 mActivityTestRule.injectObjectAndReload(mTestObject, "testObject"); |
56 } | 66 } |
57 | 67 |
58 // Note that this requires that we can pass a JavaScript string to Java. | 68 // Note that this requires that we can pass a JavaScript string to Java. |
59 protected String executeJavaScriptAndGetStringResult(String script) throws T
hrowable { | 69 protected String executeJavaScriptAndGetStringResult(String script) throws T
hrowable { |
60 executeJavaScript("testObject.setStringValue(" + script + ");"); | 70 mActivityTestRule.executeJavaScript("testObject.setStringValue(" + scrip
t + ");"); |
61 return mTestObject.waitForStringValue(); | 71 return mTestObject.waitForStringValue(); |
62 } | 72 } |
63 | 73 |
64 // The Java bridge does not provide access to fields. | 74 // The Java bridge does not provide access to fields. |
65 // FIXME: Consider providing support for this. See See b/4408210. | 75 // FIXME: Consider providing support for this. See See b/4408210. |
| 76 @Test |
66 @SmallTest | 77 @SmallTest |
67 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 78 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
68 public void testFieldTypes() throws Throwable { | 79 public void testFieldTypes() throws Throwable { |
69 assertEquals("undefined", | 80 Assert.assertEquals( |
70 executeJavaScriptAndGetStringResult("typeof testObject.booleanFi
eld")); | 81 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.booleanField")); |
71 assertEquals("undefined", | 82 Assert.assertEquals( |
72 executeJavaScriptAndGetStringResult("typeof testObject.byteField
")); | 83 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.byteField")); |
73 assertEquals("undefined", | 84 Assert.assertEquals( |
74 executeJavaScriptAndGetStringResult("typeof testObject.charField
")); | 85 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.charField")); |
75 assertEquals("undefined", | 86 Assert.assertEquals( |
76 executeJavaScriptAndGetStringResult("typeof testObject.shortFiel
d")); | 87 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.shortField")); |
77 assertEquals("undefined", | 88 Assert.assertEquals( |
78 executeJavaScriptAndGetStringResult("typeof testObject.intField"
)); | 89 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.intField")); |
79 assertEquals("undefined", | 90 Assert.assertEquals( |
80 executeJavaScriptAndGetStringResult("typeof testObject.longField
")); | 91 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.longField")); |
81 assertEquals("undefined", | 92 Assert.assertEquals( |
82 executeJavaScriptAndGetStringResult("typeof testObject.floatFiel
d")); | 93 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.floatField")); |
83 assertEquals("undefined", | 94 Assert.assertEquals( |
84 executeJavaScriptAndGetStringResult("typeof testObject.doubleFie
ld")); | 95 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.doubleField")); |
85 assertEquals("undefined", | 96 Assert.assertEquals( |
86 executeJavaScriptAndGetStringResult("typeof testObject.objectFie
ld")); | 97 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.objectField")); |
87 assertEquals("undefined", | 98 Assert.assertEquals( |
88 executeJavaScriptAndGetStringResult("typeof testObject.stringFie
ld")); | 99 "undefined", executeJavaScriptAndGetStringResult("typeof testObj
ect.stringField")); |
89 assertEquals("undefined", | 100 Assert.assertEquals("undefined", |
90 executeJavaScriptAndGetStringResult("typeof testObject.customTyp
eField")); | 101 executeJavaScriptAndGetStringResult("typeof testObject.customTyp
eField")); |
91 } | 102 } |
92 } | 103 } |
OLD | NEW |