| Index: chrome/test/data/extensions/api_test/cookies/events/test.js | 
| =================================================================== | 
| --- chrome/test/data/extensions/api_test/cookies/events/test.js	(revision 0) | 
| +++ chrome/test/data/extensions/api_test/cookies/events/test.js	(revision 0) | 
| @@ -0,0 +1,148 @@ | 
| +// 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. | 
| + | 
| +// These are the cookies we expect to see along the way. | 
| +var SET_REMOVE_COOKIE = { | 
| +  name: 'testSetRemove', | 
| +  value: '42', | 
| +  domain: 'a.com', | 
| +  hostOnly: true, | 
| +  path: '/', | 
| +  secure: false, | 
| +  httpOnly: false, | 
| +  session: false, | 
| +  expirationDate: 12345678900, | 
| +  storeId: "0" | 
| +}; | 
| + | 
| +var OVERWRITE_COOKIE_PRE = { | 
| +  name: 'testOverwrite', | 
| +  value: '42', | 
| +  domain: 'a.com', | 
| +  hostOnly: true, | 
| +  path: '/', | 
| +  secure: false, | 
| +  httpOnly: false, | 
| +  session: false, | 
| +  expirationDate: 12345678900, | 
| +  storeId: "0" | 
| +}; | 
| + | 
| +var OVERWRITE_COOKIE_POST = { | 
| +  name: 'testOverwrite', | 
| +  value: '43', | 
| +  domain: 'a.com', | 
| +  hostOnly: true, | 
| +  path: '/', | 
| +  secure: false, | 
| +  httpOnly: false, | 
| +  session: false, | 
| +  expirationDate: 12345678900, | 
| +  storeId: "0" | 
| +}; | 
| + | 
| +chrome.test.runTests([ | 
| +  function testSet() { | 
| +    var testCompleted = chrome.test.callbackAdded(); | 
| +    var listener = 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.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.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); | 
| +    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.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); | 
| +    }); | 
| +  } | 
| +]); | 
|  |