| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Test fixture for utility.js. | 6 * Test fixture for utility.js. |
| 7 * @constructor | 7 * @constructor |
| 8 * @extends {testing.Test} | 8 * @extends {testing.Test} |
| 9 */ | 9 */ |
| 10 function GoogleNowUtilityUnitTest () { | 10 function GoogleNowUtilityUnitTest () { |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 callback('test string', 239). | 200 callback('test string', 239). |
| 201 will(callFunction(function() { | 201 will(callFunction(function() { |
| 202 wrapper.checkInWrappedCallback(); // it should succeed | 202 wrapper.checkInWrappedCallback(); // it should succeed |
| 203 })); | 203 })); |
| 204 | 204 |
| 205 // Invoking tested function. | 205 // Invoking tested function. |
| 206 wrappedCallback('test string', 239); | 206 wrappedCallback('test string', 239); |
| 207 Mock4JS.verifyAllMocks(); | 207 Mock4JS.verifyAllMocks(); |
| 208 | 208 |
| 209 // Step 3. Check that after the callback we are again in non-instrumented | 209 // Step 3. Check that after the callback we are again in non-instrumented |
| 210 // code. | 210 // code. |
| 211 // Expectations. | 211 // Expectations. |
| 212 this.mockGlobals.expects(once()). | 212 this.mockGlobals.expects(once()). |
| 213 buildErrorWithMessageForServer('Not in instrumented callback'). | 213 buildErrorWithMessageForServer('Not in instrumented callback'). |
| 214 will(returnValue(testError)); | 214 will(returnValue(testError)); |
| 215 this.mockGlobals.expects(once()). | 215 this.mockGlobals.expects(once()). |
| 216 reportError(eqJSON(testError)); | 216 reportError(eqJSON(testError)); |
| 217 | 217 |
| 218 // Invocation. | 218 // Invocation. |
| 219 wrapper.checkInWrappedCallback(); | 219 wrapper.checkInWrappedCallback(); |
| 220 | 220 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 235 ]); | 235 ]); |
| 236 | 236 |
| 237 // Step 1. Register plugin factory. | 237 // Step 1. Register plugin factory. |
| 238 wrapper.registerWrapperPluginFactory( | 238 wrapper.registerWrapperPluginFactory( |
| 239 this.mockLocalFunctions.functions().pluginFactory); | 239 this.mockLocalFunctions.functions().pluginFactory); |
| 240 Mock4JS.verifyAllMocks(); | 240 Mock4JS.verifyAllMocks(); |
| 241 | 241 |
| 242 // Step 2. Wrap a callback. | 242 // Step 2. Wrap a callback. |
| 243 // Expectations. | 243 // Expectations. |
| 244 this.mockLocalFunctions.expects(once()). | 244 this.mockLocalFunctions.expects(once()). |
| 245 pluginFactory(). | 245 pluginFactory(undefined). |
| 246 will(returnValue({ | 246 will(returnValue({ |
| 247 prologue: this.mockLocalFunctions.functions().prologue, | 247 prologue: this.mockLocalFunctions.functions().prologue, |
| 248 epilogue: this.mockLocalFunctions.functions().epilogue | 248 epilogue: this.mockLocalFunctions.functions().epilogue |
| 249 })); | 249 })); |
| 250 | 250 |
| 251 // Invoking tested function. | 251 // Invoking tested function. |
| 252 var wrappedCallback = | 252 var wrappedCallback = |
| 253 wrapper.wrapCallback(this.mockLocalFunctions.functions().callback, true); | 253 wrapper.wrapCallback(this.mockLocalFunctions.functions().callback, true); |
| 254 Mock4JS.verifyAllMocks(); | 254 Mock4JS.verifyAllMocks(); |
| 255 | 255 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 wrapper.registerWrapperPluginFactory( | 341 wrapper.registerWrapperPluginFactory( |
| 342 this.mockLocalFunctions.functions().pluginFactory); | 342 this.mockLocalFunctions.functions().pluginFactory); |
| 343 Mock4JS.verifyAllMocks(); | 343 Mock4JS.verifyAllMocks(); |
| 344 | 344 |
| 345 // Step 5. Bind the API to another function. | 345 // Step 5. Bind the API to another function. |
| 346 chrome.testApi.addListener = this.mockLocalFunctions.functions().apiFunction2; | 346 chrome.testApi.addListener = this.mockLocalFunctions.functions().apiFunction2; |
| 347 | 347 |
| 348 // Step 6. Invoke the API with another callback. | 348 // Step 6. Invoke the API with another callback. |
| 349 // Expectations. | 349 // Expectations. |
| 350 this.mockLocalFunctions.expects(once()). | 350 this.mockLocalFunctions.expects(once()). |
| 351 pluginFactory(). | 351 pluginFactory(undefined). |
| 352 will(returnValue({ | 352 will(returnValue({ |
| 353 prologue: this.mockLocalFunctions.functions().prologue, | 353 prologue: this.mockLocalFunctions.functions().prologue, |
| 354 epilogue: this.mockLocalFunctions.functions().epilogue | 354 epilogue: this.mockLocalFunctions.functions().epilogue |
| 355 })); | 355 })); |
| 356 var function2SavedArgs = new SaveMockArguments(); | 356 var function2SavedArgs = new SaveMockArguments(); |
| 357 this.mockLocalFunctions.expects(once()). | 357 this.mockLocalFunctions.expects(once()). |
| 358 apiFunction2( | 358 apiFunction2( |
| 359 function2SavedArgs.match(eq(239)), | 359 function2SavedArgs.match(eq(239)), |
| 360 function2SavedArgs.match(ANYTHING)); | 360 function2SavedArgs.match(ANYTHING)); |
| 361 | 361 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 | 498 |
| 499 return { | 499 return { |
| 500 tasks: tasks, | 500 tasks: tasks, |
| 501 pluginFactory: registerWrapperPluginFactorySavedArgs.arguments[0] | 501 pluginFactory: registerWrapperPluginFactorySavedArgs.arguments[0] |
| 502 }; | 502 }; |
| 503 } | 503 } |
| 504 | 504 |
| 505 TEST_F('GoogleNowUtilityUnitTest', 'TaskManager2Sequential', function() { | 505 TEST_F('GoogleNowUtilityUnitTest', 'TaskManager2Sequential', function() { |
| 506 // Tests that 2 tasks get successfully executed consecutively, even if the | 506 // Tests that 2 tasks get successfully executed consecutively, even if the |
| 507 // second one conflicts with the first. | 507 // second one conflicts with the first. |
| 508 | 508 |
| 509 // Setup. | 509 // Setup. |
| 510 var test = setUpTaskManagerTest(this); | 510 var test = setUpTaskManagerTest(this); |
| 511 | 511 |
| 512 // Step 1. Add 1st task that doesn't create pending callbacks. | 512 // Step 1. Add 1st task that doesn't create pending callbacks. |
| 513 // Expectations. | 513 // Expectations. |
| 514 this.mockLocalFunctions.expects(once()).task1(); | 514 this.mockLocalFunctions.expects(once()).task1(); |
| 515 // Invocation. | 515 // Invocation. |
| 516 test.tasks.add(taskNameA, this.mockLocalFunctions.functions().task1); | 516 test.tasks.add(taskNameA, this.mockLocalFunctions.functions().task1); |
| 517 Mock4JS.verifyAllMocks(); | 517 Mock4JS.verifyAllMocks(); |
| 518 | 518 |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 681 | 681 |
| 682 // Step 2. Invoke task's callback and the onSuspend event of the task manager. | 682 // Step 2. Invoke task's callback and the onSuspend event of the task manager. |
| 683 // The 2 callbacks in onSuspendHandlerContainer are from the wrapper and the | 683 // The 2 callbacks in onSuspendHandlerContainer are from the wrapper and the |
| 684 // task manager. | 684 // task manager. |
| 685 task1PluginInstance.prologue(); | 685 task1PluginInstance.prologue(); |
| 686 task1PluginInstance.epilogue(); | 686 task1PluginInstance.epilogue(); |
| 687 onSuspendHandlerContainer[1](); | 687 onSuspendHandlerContainer[1](); |
| 688 }); | 688 }); |
| 689 | 689 |
| 690 TEST_F('GoogleNowUtilityUnitTest', 'TaskManager3Tasks', function() { | 690 TEST_F('GoogleNowUtilityUnitTest', 'TaskManager3Tasks', function() { |
| 691 // Tests that 3 tasks can be executed too. In particular, that if the second | 691 // Tests that 3 tasks can be executed too. In particular, that if the second |
| 692 // task is a single-step task which execution was originally blocked by task1, | 692 // task is a single-step task which execution was originally blocked by task1, |
| 693 // unblocking it causes immediate synchronous execution of both tasks 2 and 3. | 693 // unblocking it causes immediate synchronous execution of both tasks 2 and 3. |
| 694 | 694 |
| 695 // Setup. | 695 // Setup. |
| 696 var test = setUpTaskManagerTest(this); | 696 var test = setUpTaskManagerTest(this); |
| 697 var task1PluginInstance; | 697 var task1PluginInstance; |
| 698 | 698 |
| 699 // Step 1. Add 1st task that creates a pending callback. | 699 // Step 1. Add 1st task that creates a pending callback. |
| 700 // Expectations. | 700 // Expectations. |
| 701 this.mockLocalFunctions.expects(once()).task1(). | 701 this.mockLocalFunctions.expects(once()).task1(). |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 var alarmsGetSavedArgs = new SaveMockArguments(); | 970 var alarmsGetSavedArgs = new SaveMockArguments(); |
| 971 this.mockApis.expects(once()). | 971 this.mockApis.expects(once()). |
| 972 instrumented_alarms_get( | 972 instrumented_alarms_get( |
| 973 alarmsGetSavedArgs.match(eq(testAttemptAlarmName)), | 973 alarmsGetSavedArgs.match(eq(testAttemptAlarmName)), |
| 974 alarmsGetSavedArgs.match(ANYTHING)). | 974 alarmsGetSavedArgs.match(ANYTHING)). |
| 975 will(invokeCallback(alarmsGetSavedArgs, 1, {testField: 'TEST VALUE'})); | 975 will(invokeCallback(alarmsGetSavedArgs, 1, {testField: 'TEST VALUE'})); |
| 976 this.mockLocalFunctions.expects(once()).attempt(); | 976 this.mockLocalFunctions.expects(once()).attempt(); |
| 977 // Invocation. | 977 // Invocation. |
| 978 onAlarmHandlerContainer[0]({name: testAttemptAlarmName}); | 978 onAlarmHandlerContainer[0]({name: testAttemptAlarmName}); |
| 979 }); | 979 }); |
| OLD | NEW |