aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-08-16 16:03:41 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-08-16 16:03:41 +0000
commit4a004c90cf2c1deeb16f916cd641e66f31d19433 (patch)
treeabde036a7477061c0ae5ca992a9df3f2ad644ed4
parent8c47eebd81c996f17198edb2fa504c04d48d567e (diff)
parent948d4753664cc4e6b33cc3de634ac8fd5f781382 (diff)
downloadchromium-libpac-pie-release.tar.gz
Merge cherrypicks of [4793300, 4793320, 4793321, 4793340, 4793322, 4793061, 4793323, 4793324, 4793325, 4793380, 4793341, 4793342, 4793343, 4793265, 4793131, 4793132, 4793266, 4793133, 4793134, 4793400, 4793229, 4793381, 4793382, 4793383, 4793384, 4793385, 4793386, 4793387, 4793388, 4793062, 4793105, 4793063, 4793135, 4793389, 4793420] into pi-releaseandroid-9.0.0_r9android-9.0.0_r17pie-s2-releasepie-release
Change-Id: I73f61368be28dc8f3069a6b85472d6243f7b9a2c
-rw-r--r--Android.mk2
-rw-r--r--test/Android.mk2
-rw-r--r--test/js-unittest/change_element_kind.js15
-rw-r--r--test/proxy_resolver_v8_unittest.cc14
-rw-r--r--test/proxy_test_script.h17
5 files changed, 49 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk
index fdd6e85..ae0e768 100644
--- a/Android.mk
+++ b/Android.mk
@@ -29,3 +29,5 @@ LOCAL_SHARED_LIBRARIES := libutils liblog libicuuc libicui18n
LOCAL_CXX_STL := libc++
include $(BUILD_SHARED_LIBRARY)
+
+include $(LOCAL_PATH)/test/Android.mk
diff --git a/test/Android.mk b/test/Android.mk
index 9c9722e..edf9107 100644
--- a/test/Android.mk
+++ b/test/Android.mk
@@ -18,6 +18,6 @@ LOCAL_CFLAGS += \
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../src $(LOCAL_PATH)/ external/v8
-LOCAL_SHARED_LIBRARIES := libpac libutils liblog
+LOCAL_SHARED_LIBRARIES := libpac libutils liblog libandroid_runtime
include $(BUILD_NATIVE_TEST)
diff --git a/test/js-unittest/change_element_kind.js b/test/js-unittest/change_element_kind.js
new file mode 100644
index 0000000..335d59e
--- /dev/null
+++ b/test/js-unittest/change_element_kind.js
@@ -0,0 +1,15 @@
+// PAC script with getter that changes element kind.
+
+function FindProxyForURL(url, host) {
+ let arr = [];
+ arr[1000] = 0x1234;
+
+ arr.__defineGetter__(256, function () {
+ delete arr[256];
+ arr.unshift(1.1);
+ });
+
+ let results = Object.entries(arr);
+ let str = results.toString();
+ return "DIRECT";
+}
diff --git a/test/proxy_resolver_v8_unittest.cc b/test/proxy_resolver_v8_unittest.cc
index ad9c826..be7ecee 100644
--- a/test/proxy_resolver_v8_unittest.cc
+++ b/test/proxy_resolver_v8_unittest.cc
@@ -544,5 +544,19 @@ TEST(ProxyResolverV8Test, DNSResolutionOfInternationDomainName) {
EXPECT_EQ("xn--bcher-kva.ch", bindings->dns_resolves_ex[0]);
}
+TEST(ProxyResolverV8Test, GetterChangesElementKind) {
+ ProxyResolverV8WithMockBindings resolver(new MockJSBindings());
+ int result = resolver.SetPacScript(String16(CHANGE_ELEMENT_KIND_JS));
+ EXPECT_EQ(OK, result);
+
+ // Execute FindProxyForURL().
+ result = resolver.GetProxyForURL(kQueryUrl, kQueryHost, &kResults);
+
+ EXPECT_EQ(OK, result);
+ std::vector<std::string> proxies = string16ToProxyList(kResults);
+ EXPECT_EQ(1U, proxies.size());
+ EXPECT_EQ("DIRECT", proxies[0]);
+}
+
} // namespace
} // namespace net
diff --git a/test/proxy_test_script.h b/test/proxy_test_script.h
index 1042366..80c96c7 100644
--- a/test/proxy_test_script.h
+++ b/test/proxy_test_script.h
@@ -78,6 +78,23 @@
"function fn() {}\n" \
"\n" \
+#define CHANGE_ELEMENT_KIND_JS \
+ "// PAC script with getter that changes element kind.\n" \
+ " \n" \
+ "function FindProxyForURL(url, host) {\n" \
+ " let arr = [];\n" \
+ " arr[1000] = 0x1234;\n" \
+ "\n" \
+ " arr.__defineGetter__(256, function () {\n" \
+ " delete arr[256];\n" \
+ " arr.unshift(1.1);\n" \
+ " });\n" \
+ "\n" \
+ " let results = Object.entries(arr);\n" \
+ " let str = results.toString(); \n" \
+ " return \"DIRECT\";\n" \
+ "}\n" \
+
#define DIRECT_JS \
"function FindProxyForURL(url, host) {\n" \
" return \"DIRECT\";\n" \