Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1323)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js

Issue 2309863002: Plumb reserve method of the BudgetAPI (Closed)
Patch Set: Updated with code review comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * Mock implementation of the budget service. 2 * Mock implementation of the budget service.
3 */ 3 */
4 4
5 "use strict"; 5 "use strict";
6 6
7 const TEST_BUDGET_COST = 1.2; 7 const TEST_BUDGET_COST = 1.2;
8 const TEST_BUDGET_AT = 2.3; 8 const TEST_BUDGET_AT = 2.3;
9 const TEST_BUDGET_TIME = new Date().getTime(); 9 const TEST_BUDGET_TIME = new Date().getTime();
10 10
11 let budgetServiceMock = loadMojoModules( 11 let budgetServiceMock = loadMojoModules(
12 'budgetServiceMock', 12 'budgetServiceMock',
13 ['third_party/WebKit/public/platform/modules/budget_service/budget_service.m ojom', 13 ['third_party/WebKit/public/platform/modules/budget_service/budget_service.m ojom',
14 'mojo/public/js/router' 14 'mojo/public/js/router'
15 ]).then(mojo => { 15 ]).then(mojo => {
16 const [budgetService, router] = mojo.modules; 16 const [budgetService, router] = mojo.modules;
17 17
18 class BudgetServiceMock { 18 class BudgetServiceMock {
19 constructor(interfaceProvider) { 19 constructor(interfaceProvider) {
20 interfaceProvider.addInterfaceOverrideForTesting( 20 interfaceProvider.addInterfaceOverrideForTesting(
21 budgetService.BudgetService.name, 21 budgetService.BudgetService.name,
22 handle => this.connectBudgetService_(handle)); 22 handle => this.connectBudgetService_(handle));
23 23
24 this.interfaceProvider_ = interfaceProvider; 24 this.interfaceProvider_ = interfaceProvider;
25
26 // Values to return for the next getBudget and getCost calls.
27 this.cost_ = {};
28 this.budget_ = [];
29 this.error_ = budgetService.BudgetServiceErrorType.NO_ERROR;
25 } 30 }
26 31
27 connectBudgetService_(handle) { 32 connectBudgetService_(handle) {
28 this.budgetServiceStub_ = new budgetService.BudgetService.stubClass(this); 33 this.budgetServiceStub_ = new budgetService.BudgetService.stubClass(this);
29 this.budgetServiceRouter_ = new router.Router(handle); 34 this.budgetServiceRouter_ = new router.Router(handle);
30 this.budgetServiceRouter_.setIncomingReceiver(this.budgetServiceStub_); 35 this.budgetServiceRouter_.setIncomingReceiver(this.budgetServiceStub_);
31 } 36 }
32 37
33 getCost(operationType) { 38 // This is called directly from test javascript to set up the return value
Peter Beverloo 2016/09/06 15:54:10 OCD: JavaScript
harkness 2016/09/06 16:17:26 Done.
34 return Promise.resolve({ cost:TEST_BUDGET_COST }); 39 // for the getCost Mojo call. The operationType mapping is needed to mirror
40 // the mapping that happens in the Mojo layer.
41 setCost(operationType, cost) {
42 let mojoOperationType = budgetService.BudgetOperationType.INVALID_OPERATIO N;
43 if (operationType == "silent-push")
44 mojoOperationType = budgetService.BudgetOperationType.SILENT_PUSH;
45
46 this.cost_[mojoOperationType] = cost;
35 } 47 }
36 48
49
50 // This is called directly from test javascript to set up the budget that is
51 // returned from a later getBudget Mojo call. This adds an entry into the
52 // budget array.
53 addBudget(addTime, addBudget) {
54 this.budget_.push({ time: addTime, budget_at: addBudget });
55 }
56
57 // This is called from test javascript. It sets whether the next reserve
58 // call should return success or not.
59 setReserveSuccess(success) {
60 this.success_ = success;
61 }
62
63 // Called from test javascript, this sets the error to be returned by the
64 // Mojo service to the BudgetService in Blink. This error is never surfaced
65 // to the test javascript, but the test code may get an exception if one of
66 // these is set.
67 setError(errorName) {
68 switch (errorName) {
69 case "database-error":
70 this.error_ = budgetService.BudgetServiceErrorType.DATABASE_ERROR;
71 break;
72 case "not-supported":
73 this.error_ = budgetService.BudgetServiceErrorType.NOT_SUPPORTED;
74 break;
75 case "no-error":
76 this.error_ = budgetService.BudgetServiceErrorType.NO_ERROR;
77 break;
78 }
79 }
80
81 // This provides an implementation for the Mojo serivce getCost call.
82 getCost(operationType) {
83 return Promise.resolve({ cost: this.cost_[operationType] });
84 }
85
86 // This provides an implementation for the Mojo serivce getBudget call.
37 getBudget() { 87 getBudget() {
38 return Promise.resolve({ budget: [ { time:TEST_BUDGET_TIME, budget_at:TEST _BUDGET_AT } ] }); 88 return Promise.resolve({ errorType: this.error_, budget: this.budget_ });
89 }
90
91 // This provides an implementation for the Mojo serivce reserve call.
92 reserve() {
93 return Promise.resolve({ errorType: this.error_, success: this.success_ }) ;
39 } 94 }
40 } 95 }
41 return new BudgetServiceMock(mojo.interfaces); 96 return new BudgetServiceMock(mojo.interfaces);
42 }); 97 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698