File: content_settings_exception_area_browsertest.js

package info (click to toggle)
chromium-browser 41.0.2272.118-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 2,189,132 kB
  • sloc: cpp: 9,691,462; ansic: 3,341,451; python: 712,689; asm: 518,779; xml: 208,926; java: 169,820; sh: 119,353; perl: 68,907; makefile: 28,311; yacc: 13,305; objc: 11,385; tcl: 3,186; cs: 2,225; sql: 2,217; lex: 2,215; lisp: 1,349; pascal: 1,256; awk: 407; ruby: 155; sed: 53; php: 14; exp: 11
file content (87 lines) | stat: -rw-r--r-- 3,014 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// Copyright (c) 2012 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.

/**
 * TestFixture for content settings exception area WebUI testing.
 * @extends {testing.Test}
 * @constructor
 */
function ContentSettingsExceptionAreaWebUITest() {}

ContentSettingsExceptionAreaWebUITest.prototype = {
  __proto__: testing.Test.prototype,

  /** @override */
  browsePreload: 'chrome://settings-frame/contentExceptions',
};

GEN('#if defined(OS_CHROMEOS)');
GEN('#define MAYBE_testOpenContentSettingsExceptionArea ' +
        'DISABLED_testOpenContentSettingsExceptionArea');
GEN('#else');
GEN('#define MAYBE_testOpenContentSettingsExceptionArea ' +
        'testOpenContentSettingsExceptionArea');
GEN('#endif  // defined(OS_CHROMEOS)');
// Test opening the content settings exception area has correct location.
TEST_F('ContentSettingsExceptionAreaWebUITest',
       'MAYBE_testOpenContentSettingsExceptionArea', function() {
  assertEquals(this.browsePreload, document.location.href);
});

/**
 * A class to asynchronously test the content settings exception area dialog.
 * @extends {testing.Test}
 * @constructor
 */
function ContentSettingsExceptionsAreaAsyncWebUITest() {}

ContentSettingsExceptionsAreaAsyncWebUITest.prototype = {
  __proto__: testing.Test.prototype,

  /** @override */
  browsePreload: 'chrome://settings-frame/contentExceptions',

  /** @override */
  isAsync: true,
};

// Adds and removes a location content setting exception.
TEST_F('ContentSettingsExceptionsAreaAsyncWebUITest',
       'testAddRemoveLocationExceptions', function() {
  assertEquals(this.browsePreload, document.location.href);

  /** @const */ var origin = 'http://google.com:80';
  /** @const */ var setExceptions = ContentSettings.setExceptions;

  var list = ContentSettings.getExceptionsList('cookies', 'normal');
  assertEquals(1, list.items.length);

  var setExceptionsCounter = 0;
  var setExceptionsCallback = function() {
    setExceptionsCounter++;
    if (setExceptionsCounter == 1) {
      // The first item is now the exception (edit items are always last).
      expectEquals('block', list.dataModel.item(0).setting);
      expectEquals(origin, list.dataModel.item(0).origin);

      // Delete the item and verify it worked.
      list.deleteItemAtIndex(0);
    } else if (setExceptionsCounter == 2) {
      // Verify the item was deleted, restore the original method, and finish.
      expectEquals(1, list.items.length);
      ContentSettings.setExceptions = setExceptions;
      testDone();
    }
  };

  // NOTE: if this test doesn't succeed, |ContentSettings.setExceptions| may not
  // be restored to its original method. I know no easy way to fix this.
  ContentSettings.setExceptions = function() {
    setExceptions.apply(ContentSettings, arguments);
    setExceptionsCallback();
  };

  // Add an item to the location exception area to start the test.
  list.items[0].finishEdit(origin, 'block');
});