blob: c3178be5869157383e3560bdd050a7f2d49a8991 [file] [log] [blame]
// Copyright 2015 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.
// This just tests the interface. It does not test for specific results, only
// that callbacks are correctly invoked, expected parameters are correct,
// and failures are detected.
var kTestPrefName = 'autofill.profile_enabled';
var kTestPrefValue = true;
// This corresponds to policy key: kHomepageIsNewTabPage used in
// settings_private_apitest.cc.
var kTestEnforcedPrefName = 'homepage_is_newtabpage';
var kTestPageId = 'pageId';
function callbackResult(result) {
if (chrome.runtime.lastError)
chrome.test.fail(chrome.runtime.lastError.message);
else if (result == false)
chrome.test.fail('Failed: ' + result);
}
var availableTests = [
function setPref() {
chrome.settingsPrivate.setPref(
kTestPrefName,
kTestPrefValue,
kTestPageId,
function(success) {
callbackResult(success);
chrome.test.succeed();
});
},
function setPref_CrOSSetting() {
chrome.settingsPrivate.setPref(
'cros.accounts.allowBWSI',
false,
kTestPageId,
function(success) {
callbackResult(success);
chrome.test.succeed();
});
},
function getPref() {
chrome.settingsPrivate.getPref(
kTestPrefName,
function(value) {
chrome.test.assertTrue(value !== null);
callbackResult(true);
chrome.test.succeed();
});
},
function getEnforcedPref() {
chrome.settingsPrivate.getPref(kTestEnforcedPrefName, function(value) {
chrome.test.assertEq('object', typeof value);
callbackResult(true);
chrome.test.assertEq(
chrome.settingsPrivate.ControlledBy.USER_POLICY, value.controlledBy);
chrome.test.assertEq(
chrome.settingsPrivate.Enforcement.ENFORCED, value.enforcement);
chrome.test.succeed();
});
},
function getRecommendedPref() {
chrome.settingsPrivate.getPref(kTestEnforcedPrefName, function(value) {
chrome.test.assertEq('object', typeof value);
callbackResult(true);
chrome.test.assertEq(true, value.value);
chrome.test.assertEq(
chrome.settingsPrivate.ControlledBy.USER_POLICY, value.controlledBy);
chrome.test.assertEq(
chrome.settingsPrivate.Enforcement.RECOMMENDED, value.enforcement);
// Set the value to false, policy properties should still be set.
chrome.settingsPrivate.setPref(
kTestEnforcedPrefName, false, kTestPageId, function(success) {
callbackResult(success);
chrome.settingsPrivate.getPref(
kTestEnforcedPrefName, function(value) {
chrome.test.assertEq('object', typeof value);
callbackResult(true);
chrome.test.assertEq(false, value.value);
chrome.test.assertEq(
chrome.settingsPrivate.ControlledBy.USER_POLICY,
value.controlledBy);
chrome.test.assertEq(
chrome.settingsPrivate.Enforcement.RECOMMENDED,
value.enforcement);
chrome.test.succeed();
});
});
});
},
function getPref_CrOSSetting() {
chrome.settingsPrivate.getPref(
'cros.accounts.allowBWSI',
function(value) {
chrome.test.assertTrue(value !== null);
callbackResult(true);
chrome.test.succeed();
});
},
function getAllPrefs() {
chrome.settingsPrivate.getAllPrefs(
function(prefs) {
chrome.test.assertTrue(prefs.length > 0);
callbackResult(true);
chrome.test.succeed();
});
},
function onPrefsChanged() {
chrome.settingsPrivate.onPrefsChanged.addListener(function(prefs) {
chrome.test.assertTrue(prefs.length > 0);
chrome.test.assertEq(kTestPrefName, prefs[0].key);
chrome.test.assertEq(kTestPrefValue, prefs[0].value);
callbackResult(true);
chrome.test.succeed();
});
chrome.settingsPrivate.setPref(
kTestPrefName,
kTestPrefValue,
kTestPageId,
function() {});
},
function onPrefsChanged_CrOSSetting() {
chrome.settingsPrivate.onPrefsChanged.addListener(function(prefs) {
chrome.test.assertTrue(prefs.length > 0);
chrome.test.assertEq('cros.accounts.allowBWSI', prefs[0].key);
chrome.test.assertEq(false, prefs[0].value);
callbackResult(true);
chrome.test.succeed();
});
chrome.settingsPrivate.setPref(
'cros.accounts.allowBWSI',
false,
kTestPageId,
function() {});
},
];
var testToRun = window.location.search.substring(1);
chrome.test.runTests(availableTests.filter(function(op) {
return op.name == testToRun;
}));