diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-08-10 03:13:22 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-08-10 03:13:22 +0000 |
commit | 7a50298a11c29cfb4f2ae9794c3444eef86abba6 (patch) | |
tree | abde036a7477061c0ae5ca992a9df3f2ad644ed4 | |
parent | 8c47eebd81c996f17198edb2fa504c04d48d567e (diff) | |
parent | d735970ceec445c8b4cc6e4041a621774c738b63 (diff) | |
download | chromium-libpac-pie-qpr2-release.tar.gz |
Snap for 4945494 from d735970ceec445c8b4cc6e4041a621774c738b63 to pi-qpr1-releaseandroid-9.0.0_r35android-9.0.0_r34android-9.0.0_r33android-9.0.0_r32android-9.0.0_r31android-9.0.0_r30android-9.0.0_r22android-9.0.0_r21android-9.0.0_r20android-9.0.0_r19android-9.0.0_r16pie-qpr2-releasepie-qpr1-s3-releasepie-qpr1-s2-releasepie-qpr1-s1-releasepie-qpr1-release
Change-Id: I4968add8d88ca3a0c498baaa747d663cacefa80b
-rw-r--r-- | Android.mk | 2 | ||||
-rw-r--r-- | test/Android.mk | 2 | ||||
-rw-r--r-- | test/js-unittest/change_element_kind.js | 15 | ||||
-rw-r--r-- | test/proxy_resolver_v8_unittest.cc | 14 | ||||
-rw-r--r-- | test/proxy_test_script.h | 17 |
5 files changed, 49 insertions, 1 deletions
@@ -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" \ |