Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 Google Inc. All Rights Reserved. | 1 // Copyright 2015 Google Inc. All Rights Reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 147 | 147 |
| 148 QUnit.module('storage', { | 148 QUnit.module('storage', { |
| 149 beforeEach: function () { | 149 beforeEach: function () { |
| 150 localforage.setItem('test1', 123); | 150 localforage.setItem('test1', 123); |
| 151 localforage.setItem('test2', '456'); | 151 localforage.setItem('test2', '456'); |
| 152 sandbox.stub(chrome.caterpillar, 'setError'); | 152 sandbox.stub(chrome.caterpillar, 'setError'); |
| 153 }, | 153 }, |
| 154 afterEach: function() { | 154 afterEach: function() { |
| 155 sandbox.restore(); | 155 sandbox.restore(); |
| 156 localforage.willError = false; | 156 localforage.willError = false; |
| 157 localforage.clear(); | |
| 158 chrome.caterpillar.storage.resetOnChangedListenersForTests(); | |
| 157 } | 159 } |
| 158 }); | 160 }); |
| 159 | 161 |
| 160 // All storage areas are assumed to be the same in this polyfill. | 162 // All storage areas are assumed to be the same in this polyfill. |
| 161 QUnit.test('all storage areas are the same', assert => { | 163 QUnit.test('all storage areas are the same', assert => { |
| 162 assert.ok(chrome.storage.sync === chrome.storage.local && | 164 assert.ok(chrome.storage.sync === chrome.storage.local && |
| 163 chrome.storage.local === chrome.storage.managed) | 165 chrome.storage.local === chrome.storage.managed) |
| 164 }); | 166 }); |
| 165 | 167 |
| 166 QUnit.test('get sends errors to caterpillar when retrieving all items', | 168 QUnit.test('get sends errors to caterpillar when retrieving all items', |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 243 }); | 245 }); |
| 244 | 246 |
| 245 QUnit.test('get can get key value pairs with defaults', function(assert) { | 247 QUnit.test('get can get key value pairs with defaults', function(assert) { |
| 246 var done = assert.async(); | 248 var done = assert.async(); |
| 247 chrome.storage.local.get({'notakey': 'default'}, function(items) { | 249 chrome.storage.local.get({'notakey': 'default'}, function(items) { |
| 248 assert.strictEqual(items['notakey'], 'default'); | 250 assert.strictEqual(items['notakey'], 'default'); |
| 249 done(); | 251 done(); |
| 250 }); | 252 }); |
| 251 }); | 253 }); |
| 252 | 254 |
| 253 // TODO(alger): Test onChanged using set and remove. | 255 QUnit.test('getBytesInUse sets an error', function(assert) { |
| 256 var done = assert.async(); | |
| 257 chrome.storage.local.getBytesInUse([], function() { | |
| 258 assert.equal(chrome.caterpillar.setError.args[0][0], | |
| 259 'getBytesInUse not implemented.'); | |
| 260 done(); | |
| 261 }); | |
| 262 }); | |
| 263 | |
| 264 QUnit.test('getBytesInUse juggles arguments', function(assert) { | |
| 265 var done = assert.async(); | |
| 266 chrome.storage.local.getBytesInUse(done); | |
| 267 assert.expect(0); | |
| 268 }); | |
| 269 | |
| 270 QUnit.test('can set key/value pairs', function(assert) { | |
| 271 var done = assert.async(); | |
| 272 chrome.storage.local.set({'hello': 'world', 'test': 123}, function() { | |
| 273 localforage.getItem('hello') | |
| 274 .then(function(value) { | |
| 275 assert.strictEqual(value, 'world'); | |
| 276 return localforage.getItem('test'); | |
| 277 }) | |
| 278 .then(function(value) { | |
| 279 assert.strictEqual(value, 123); | |
| 280 done(); | |
| 281 }); | |
| 282 }); | |
| 283 }); | |
| 284 | |
| 285 QUnit.test('can remove a single item', function(assert) { | |
| 286 var done = assert.async(); | |
| 287 chrome.storage.local.remove('test1', function() { | |
| 288 localforage.getItem('test1').then(function(value) { | |
| 289 assert.strictEqual(value, null); | |
| 290 done(); | |
| 291 }); | |
| 292 }); | |
| 293 }); | |
| 294 | |
| 295 QUnit.test('can remove multiple items', function(assert) { | |
| 296 var done = assert.async(); | |
| 297 chrome.storage.local.remove(['test1', 'test2'], function() { | |
| 298 localforage.getItem('test1') | |
| 299 .then(function(value) { | |
| 300 assert.strictEqual(value, null); | |
| 301 return localforage.getItem('test2'); | |
| 302 }) | |
| 303 .then(function(value) { | |
| 304 assert.strictEqual(value, null); | |
| 305 done(); | |
| 306 }); | |
| 307 }); | |
| 308 }); | |
| 309 | |
| 310 QUnit.test('can clear all items', function(assert) { | |
| 311 var done = assert.async(); | |
| 312 chrome.storage.local.clear(function() { | |
| 313 localforage.getItem('test1') | |
| 314 .then(function(value) { | |
| 315 assert.strictEqual(value, null); | |
| 316 return localforage.getItem('test2'); | |
| 317 }) | |
| 318 .then(function(value) { | |
| 319 assert.strictEqual(value, null); | |
| 320 done(); | |
| 321 }); | |
| 322 }); | |
| 323 }); | |
| 324 | |
| 325 QUnit.test('set runs onChanged handlers', function(assert) { | |
| 326 var done = assert.async(); | |
| 327 chrome.storage.onChanged.addListener(function(changes) { | |
| 328 assert.strictEqual(changes['test1'].oldValue, 123); | |
| 329 assert.strictEqual(changes['test1'].newValue, 'hello'); | |
| 330 done(); | |
| 331 }); | |
| 332 chrome.storage.local.set({'test1': 'hello'}); | |
| 333 }); | |
| 334 | |
| 335 QUnit.test('set runs multiple onChanged handlers', function(assert) { | |
| 336 assert.expect(0); | |
|
raymes
2016/01/18 00:25:20
What's this for?
Matthew Alger
2016/01/18 00:37:37
expect tells QUnit how many assertions there will
raymes
2016/01/18 02:13:34
I see - so do things fail without this? If not the
Matthew Alger
2016/01/18 02:14:58
Yes, QUnit will explicitly fail if there are no as
| |
| 337 var done = assert.async(2); | |
| 338 chrome.storage.onChanged.addListener(function(changes) { | |
| 339 done(); | |
| 340 }); | |
| 341 chrome.storage.onChanged.addListener(function(changes) { | |
| 342 done(); | |
| 343 }); | |
| 344 chrome.storage.local.set({'test1': 'hello'}); | |
| 345 }); | |
| 346 | |
| 347 QUnit.test('removing 1 key runs onChanged handlers', function(assert) { | |
| 348 var done = assert.async(); | |
| 349 chrome.storage.onChanged.addListener(function(changes) { | |
| 350 assert.strictEqual(changes['test1'].oldValue, 123); | |
| 351 assert.strictEqual(changes['test1'].newValue, null); | |
| 352 done(); | |
| 353 }); | |
| 354 chrome.storage.local.remove('test1'); | |
| 355 }); | |
| 356 | |
| 357 QUnit.test('removing 1 key runs multiple onChanged handlers', function(assert) { | |
| 358 assert.expect(0); | |
| 359 var done = assert.async(2); | |
| 360 chrome.storage.onChanged.addListener(function(changes) { | |
| 361 done(); | |
| 362 }); | |
| 363 chrome.storage.onChanged.addListener(function(changes) { | |
| 364 done(); | |
| 365 }); | |
| 366 chrome.storage.local.remove('test1'); | |
| 367 }); | |
| 368 | |
| 369 QUnit.test('removing multiple keys runs onChanged handlers', function(assert) { | |
| 370 var done = assert.async(); | |
| 371 chrome.storage.onChanged.addListener(function(changes) { | |
| 372 assert.strictEqual(changes['test1'].oldValue, 123); | |
| 373 assert.strictEqual(changes['test1'].newValue, null); | |
| 374 assert.strictEqual(changes['test2'].oldValue, '456'); | |
| 375 assert.strictEqual(changes['test2'].newValue, null); | |
| 376 done(); | |
| 377 }); | |
| 378 chrome.storage.local.remove(['test1', 'test2']); | |
| 379 }); | |
| 380 | |
| 381 QUnit.test('removing multiple keys runs multiple onChanged handlers', | |
| 382 function(assert) { | |
| 383 assert.expect(0); | |
| 384 var done = assert.async(2); | |
| 385 chrome.storage.onChanged.addListener(function(changes) { | |
| 386 done(); | |
| 387 }); | |
| 388 chrome.storage.onChanged.addListener(function(changes) { | |
| 389 done(); | |
| 390 }); | |
| 391 chrome.storage.local.remove('test1'); | |
| 392 } | |
| 393 ); | |
| 394 | |
| 395 QUnit.test('clearing runs onChanged handlers', function(assert) { | |
| 396 var done = assert.async(); | |
| 397 chrome.storage.onChanged.addListener(function(changes) { | |
| 398 assert.strictEqual(changes['test1'].oldValue, 123); | |
| 399 assert.strictEqual(changes['test1'].newValue, null); | |
| 400 assert.strictEqual(changes['test2'].oldValue, '456'); | |
| 401 assert.strictEqual(changes['test2'].newValue, null); | |
| 402 done(); | |
| 403 }); | |
| 404 chrome.storage.local.clear(); | |
| 405 }); | |
| 406 | |
| 407 QUnit.test('clearing runs multiple onChanged handlers', function(assert) { | |
| 408 assert.expect(0); | |
| 409 var done = assert.async(2); | |
| 410 chrome.storage.onChanged.addListener(function(changes) { | |
| 411 done(); | |
| 412 }); | |
| 413 chrome.storage.onChanged.addListener(function(changes) { | |
|
raymes
2016/01/18 00:25:20
You could probably merge all the multiple handler
Matthew Alger
2016/01/18 00:37:37
I'm not sure that's entirely true. It's easily pos
raymes
2016/01/18 02:13:34
I agree. But having only the multiple test would a
Matthew Alger
2016/01/18 02:14:58
Acknowledged.
| |
| 414 done(); | |
| 415 }); | |
| 416 chrome.storage.local.clear(); | |
| 417 }); | |
| OLD | NEW |