| // Copyright 2011 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| chrome.test.runTests([ |
| // Tests that attaching a named event twice will fail. |
| function doubleAttach() { |
| function dummy() {}; |
| const onClicked = new chrome.Event('browserAction.onClicked'); |
| const onClicked2 = new chrome.Event('browserAction.onClicked'); |
| onClicked.addListener(dummy); |
| chrome.test.assertTrue(onClicked.hasListeners()); |
| try { |
| onClicked2.addListener(dummy); |
| chrome.test.fail(); |
| } catch (e) { |
| chrome.test.assertTrue( |
| e.message.search('already attached') >= 0, |
| e.message); |
| } |
| chrome.test.assertFalse(onClicked2.hasListeners()); |
| onClicked2.removeListener(dummy); |
| |
| onClicked.removeListener(dummy); |
| chrome.test.assertFalse(onClicked.hasListeners()); |
| chrome.test.succeed(); |
| }, |
| |
| // Tests that 2 pages attaching to the same event does not trigger a DCHECK. |
| function twoPageAttach() { |
| // Test harness should already have opened tab.html, which registers this |
| // listener. |
| chrome.browserAction.onClicked.addListener(function() {}); |
| |
| // Test continues in twoPageAttach.html. |
| window.open('twoPageAttach.html'); |
| }, |
| ]); |