| Index: chrome/test/data/extensions/api_test/content_settings/standard/test.js
|
| ===================================================================
|
| --- chrome/test/data/extensions/api_test/content_settings/standard/test.js (revision 0)
|
| +++ chrome/test/data/extensions/api_test/content_settings/standard/test.js (revision 0)
|
| @@ -0,0 +1,95 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Content settings API test
|
| +// Run with browser_tests --gtest_filter=ExtensionApiTest.ContentSettings
|
| +
|
| +var cs = chrome.contentSettings;
|
| +var default_content_settings = {
|
| + "cookies": "session_only",
|
| + "images": "allow",
|
| + "javascript": "block",
|
| + "plugins": "allow",
|
| + "popups": "block",
|
| + // TODO(bauerb)
|
| + // "geolocation": "ask",
|
| + "notifications": "ask"
|
| +};
|
| +
|
| +var settings = {
|
| + "cookies": "block",
|
| + "images": "allow",
|
| + "javascript": "block",
|
| + "plugins": "block",
|
| + "popups": "allow",
|
| + // "geolocation": "block",
|
| + "notifications": "block"
|
| +};
|
| +
|
| +Object.prototype.forEach = function(f) {
|
| + var k;
|
| + for (k in this) {
|
| + if (this.hasOwnProperty(k))
|
| + f(k, this[k]);
|
| + }
|
| +};
|
| +
|
| +function expect(expected, message) {
|
| + return chrome.test.callbackPass(function(value) {
|
| + chrome.test.assertEq(expected, value, message);
|
| + });
|
| +}
|
| +
|
| +function expectFalse(message) {
|
| + return expect({
|
| + "value": false,
|
| + "levelOfControl": "controllable_by_this_extension"
|
| + }, message);
|
| +}
|
| +
|
| +chrome.test.runTests([
|
| + function setDefaultContentSettings() {
|
| + default_content_settings.forEach(function(type, setting) {
|
| + cs[type].set({
|
| + 'primaryPattern': '<all_urls>',
|
| + 'secondaryPattern': '<all_urls>',
|
| + 'setting': setting
|
| + }, chrome.test.callbackPass());
|
| + });
|
| + },
|
| + function setContentSettings() {
|
| + settings.forEach(function(type, setting) {
|
| + cs[type].set({
|
| + 'primaryPattern': 'http://*.google.com/*',
|
| + 'secondaryPattern': 'http://*.google.com/*',
|
| + 'setting': setting
|
| + }, chrome.test.callbackPass());
|
| + });
|
| + },
|
| + function getContentSettings() {
|
| + settings.forEach(function(type, setting) {
|
| + var message = "Setting for " + type + " should be " + setting;
|
| + cs[type].get({
|
| + 'primaryUrl': 'http://www.google.com',
|
| + 'secondaryUrl': 'http://www.google.com'
|
| + }, expect({'setting':setting}, message));
|
| + });
|
| + },
|
| + function invalidSettings() {
|
| + cs.cookies.get({
|
| + 'primaryUrl': 'moo'
|
| + }, chrome.test.callbackFail("The URL \"moo\" is invalid."));
|
| + cs.plugins.set({
|
| + 'primaryPattern': 'http://example.com/*',
|
| + 'secondaryPattern': 'http://example.com/path',
|
| + 'setting': 'block'
|
| + }, chrome.test.callbackFail("Specific paths are not allowed."));
|
| + cs.javascript.set({
|
| + 'primaryPattern': 'http://example.com/*',
|
| + 'secondaryPattern': 'file:///home/hansmoleman/*',
|
| + 'setting': 'allow'
|
| + }, chrome.test.callbackFail(
|
| + "Path wildcards in file URL patterns are not allowed."));
|
| + }
|
| +]);
|
|
|