| Index: chrome/test/data/extensions/api_test/cookies/events/test.js
|
| diff --git a/chrome/test/data/extensions/api_test/cookies/events/test.js b/chrome/test/data/extensions/api_test/cookies/events/test.js
|
| index 654f7ce9ace2e3f31e2a44fe0f991455dd36b289..0734ba06661790e429e9793fdcb0974568647eab 100644
|
| --- a/chrome/test/data/extensions/api_test/cookies/events/test.js
|
| +++ b/chrome/test/data/extensions/api_test/cookies/events/test.js
|
| @@ -44,105 +44,82 @@ var OVERWRITE_COOKIE_POST = {
|
|
|
| chrome.test.runTests([
|
| function testSet() {
|
| - var testCompleted = chrome.test.callbackAdded();
|
| - var listener = function (info) {
|
| + chrome.test.listenOnce(chrome.cookies.onChanged, function (info) {
|
| chrome.test.assertFalse(info.removed);
|
| chrome.test.assertEq('explicit', info.cause);
|
| chrome.test.assertEq(SET_REMOVE_COOKIE, info.cookie);
|
| - testCompleted();
|
| - };
|
| -
|
| - chrome.cookies.onChanged.addListener(listener);
|
| + });
|
| chrome.cookies.set({
|
| url: 'http://a.com/path',
|
| name: 'testSetRemove',
|
| value: '42',
|
| expirationDate: 12345678900
|
| - }, function () {
|
| - chrome.cookies.onChanged.removeListener(listener);
|
| });
|
| },
|
| function testRemove() {
|
| - var testCompleted = chrome.test.callbackAdded();
|
| - var listener = function (info) {
|
| + chrome.test.listenOnce(chrome.cookies.onChanged, function (info) {
|
| chrome.test.assertTrue(info.removed);
|
| chrome.test.assertEq('explicit', info.cause);
|
| chrome.test.assertEq(SET_REMOVE_COOKIE, info.cookie);
|
| - testCompleted();
|
| - };
|
| -
|
| - chrome.cookies.onChanged.addListener(listener);
|
| + });
|
| chrome.cookies.remove({
|
| url: 'http://a.com/path',
|
| name: 'testSetRemove'
|
| - }, function () {
|
| - chrome.cookies.onChanged.removeListener(listener);
|
| });
|
| },
|
| function overwriteFirstSet() {
|
| - var testCompleted = chrome.test.callbackAdded();
|
| - var listener = function (info) {
|
| + chrome.test.listenOnce(chrome.cookies.onChanged, function (info) {
|
| chrome.test.assertFalse(info.removed);
|
| chrome.test.assertEq('explicit', info.cause);
|
| chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
|
| - testCompleted();
|
| - };
|
| -
|
| - chrome.cookies.onChanged.addListener(listener);
|
| + });
|
| chrome.cookies.set({
|
| url: 'http://a.com/path',
|
| name: 'testOverwrite',
|
| value: '42',
|
| expirationDate: 12345678900
|
| - }, function () {
|
| - chrome.cookies.onChanged.removeListener(listener);
|
| });
|
| },
|
| function overwriteSecondSet() {
|
| - var removeCompleted = chrome.test.callbackAdded();
|
| - var setCompleted = chrome.test.callbackAdded();
|
| - var listenerRemove = function (info) {
|
| - if (info.removed) {
|
| - chrome.test.assertEq('overwrite', info.cause);
|
| - chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
|
| - removeCompleted();
|
| - }
|
| - };
|
| - var listenerSet = function (info) {
|
| - if (!info.removed) {
|
| - chrome.test.assertEq('explicit', info.cause);
|
| - chrome.test.assertEq(OVERWRITE_COOKIE_POST, info.cookie);
|
| - setCompleted();
|
| - }
|
| - };
|
| - chrome.cookies.onChanged.addListener(listenerRemove);
|
| - chrome.cookies.onChanged.addListener(listenerSet);
|
| + var haveRemoved = false;
|
| + var haveSet = false;
|
| + var done = chrome.test.listenForever(chrome.cookies.onChanged,
|
| + function(info) {
|
| + if (info.removed) {
|
| + chrome.test.assertEq('overwrite', info.cause);
|
| + chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
|
| + chrome.test.assertFalse(haveRemoved);
|
| + chrome.test.assertFalse(haveSet);
|
| + haveRemoved = true;
|
| + } else {
|
| + chrome.test.assertEq('explicit', info.cause);
|
| + chrome.test.assertEq(OVERWRITE_COOKIE_POST, info.cookie);
|
| + chrome.test.assertTrue(haveRemoved);
|
| + chrome.test.assertFalse(haveSet);
|
| + haveSet = true;
|
| + }
|
| + if (haveRemoved && haveSet) {
|
| + done();
|
| + }
|
| + });
|
| chrome.cookies.set({
|
| url: 'http://a.com/path',
|
| name: 'testOverwrite',
|
| value: '43',
|
| expirationDate: 12345678900
|
| - }, function () {
|
| - chrome.cookies.onChanged.removeListener(listenerRemove);
|
| - chrome.cookies.onChanged.removeListener(listenerSet);
|
| });
|
| },
|
| function overwriteExpired() {
|
| - var setCompleted = chrome.test.callbackAdded();
|
| - var listener = function (info) {
|
| + chrome.test.listenOnce(chrome.cookies.onChanged, function (info) {
|
| chrome.test.assertTrue(info.removed);
|
| chrome.test.assertEq('expired_overwrite', info.cause);
|
| chrome.test.assertEq(OVERWRITE_COOKIE_POST, info.cookie);
|
| - setCompleted();
|
| - };
|
| - chrome.cookies.onChanged.addListener(listener);
|
| + });
|
| chrome.cookies.set({
|
| url: 'http://a.com/path',
|
| name: 'testOverwrite',
|
| value: '43',
|
| expirationDate: 1
|
| - }, function () {
|
| - chrome.cookies.onChanged.removeListener(listener);
|
| });
|
| }
|
| ]);
|
|
|