Index: chrome/test/data/is_search_provider_installed.html |
diff --git a/chrome/test/data/is_search_provider_installed.html b/chrome/test/data/is_search_provider_installed.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5e51c1793ede35d0971ea4b12e7d343c80eb02b5 |
--- /dev/null |
+++ b/chrome/test/data/is_search_provider_installed.html |
@@ -0,0 +1,91 @@ |
+<html> |
+<body> |
+<p>Test IsProviderInstalled.<p> |
+<div id=result> |
+</div> |
+<script> |
+var passedAll = true; |
+ |
+function log(message) { |
+ document.getElementById("result").innerHTML += message + "<br>"; |
+} |
+ |
+function logPassed(message) { |
+ log("PASS: " + message); |
+} |
+ |
+function logFailed(message) { |
+ passedAll = false; |
+ log("FAIL: " + message); |
+} |
+ |
+function verifyExceptionFor(testName, origin) { |
+ try { |
+ window.external.IsSearchProviderInstalled(origin); |
+ logFailed("No exception for a " + testName + " (" + origin + ")."); |
+ } catch (e) { |
+ logPassed("Got an exception for a " + testName + " (" + origin + ")."); |
+ } |
+} |
+ |
+function writeResult() { |
+ var result = "1"; |
+ if (passedAll) |
+ logPassed("Everything passed."); |
+ else { |
+ logFailed("At least one test failed."); |
+ result = " " + document.body.innerText; // Add a space to ensure that the |
+ // result doesn't resemble success. |
+ } |
+ document.cookie = document.location.hostname + "testResult=" + escape(result); |
+} |
+ |
+try { |
+ var differentProtocol = |
+ document.location.protocol == "http:" ? "https:" : "http:"; |
+ var differentPort = |
+ (!document.location.port || document.location.port == "80") ? ":81" : ":80"; |
+ |
+ var origin = document.location.protocol + "//" + document.location.host + "/"; |
+ var originWithDifferentProtocol = differentProtocol + "//" + |
+ document.location.host + "/"; |
+ var originWithDifferentPort = document.location.protocol + "//" + |
+ document.location.hostname + differentPort + "/"; |
+ |
+ // Verify existance of the api. |
+ var foundApi = false; |
+ try { |
+ if (window.external.IsSearchProviderInstalled) |
+ foundApi = true; |
+ } catch (e) { |
+ } |
+ |
+ if (foundApi) |
+ logPassed("IsSearchProvider api exists."); |
+ else { |
+ logFailed("IsSearchProvider api doesn't exist."); |
+ writeResult(); |
+ return; |
+ } |
+ |
+ // Verify the search provider state for the current page. |
+ var installed = window.external.IsSearchProviderInstalled(origin) |
+ var installedMessage = "Search provider ("+ origin +"): " + installed + "."; |
+ if (installed == document.location.hash.substring(1)) |
+ logPassed(installedMessage); |
+ else |
+ logFailed(installedMessage + " The expected result is passed as the hash."); |
+ |
+ // Verify that cases that should result in exceptions. |
+ verifyExceptionFor("different host", "http://example.org/"); |
+ verifyExceptionFor("different protocol", originWithDifferentProtocol); |
+ verifyExceptionFor("different port", originWithDifferentPort); |
+ |
+ writeResult(); |
+} catch (e) { |
+ logFailed("An exception occurred. Name: " + e.name + " Message: " + e.message); |
+ writeResult(); |
+} |
+</script> |
+</body> |
+</html> |