| Index: third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js b/third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js
|
| index cb4afa32bd28a0e64aa05bd0fa6baa8330cc3648..e404dbc7c584c339838b34a5ca9cd74448dc6196 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/budget/budget-service-mock.js
|
| @@ -22,6 +22,11 @@ let budgetServiceMock = loadMojoModules(
|
| handle => this.connectBudgetService_(handle));
|
|
|
| this.interfaceProvider_ = interfaceProvider;
|
| +
|
| + // Values to return for the next getBudget and getCost calls.
|
| + this.cost_ = {};
|
| + this.budget_ = [];
|
| + this.error_ = budgetService.BudgetServiceErrorType.NONE;
|
| }
|
|
|
| connectBudgetService_(handle) {
|
| @@ -30,12 +35,62 @@ let budgetServiceMock = loadMojoModules(
|
| this.budgetServiceRouter_.setIncomingReceiver(this.budgetServiceStub_);
|
| }
|
|
|
| + // This is called directly from test JavaScript to set up the return value
|
| + // for the getCost Mojo call. The operationType mapping is needed to mirror
|
| + // the mapping that happens in the Mojo layer.
|
| + setCost(operationType, cost) {
|
| + let mojoOperationType = budgetService.BudgetOperationType.INVALID_OPERATION;
|
| + if (operationType == "silent-push")
|
| + mojoOperationType = budgetService.BudgetOperationType.SILENT_PUSH;
|
| +
|
| + this.cost_[mojoOperationType] = cost;
|
| + }
|
| +
|
| +
|
| + // This is called directly from test JavaScript to set up the budget that is
|
| + // returned from a later getBudget Mojo call. This adds an entry into the
|
| + // budget array.
|
| + addBudget(addTime, addBudget) {
|
| + this.budget_.push({ time: addTime, budget_at: addBudget });
|
| + }
|
| +
|
| + // This is called from test JavaScript. It sets whether the next reserve
|
| + // call should return success or not.
|
| + setReserveSuccess(success) {
|
| + this.success_ = success;
|
| + }
|
| +
|
| + // Called from test JavaScript, this sets the error to be returned by the
|
| + // Mojo service to the BudgetService in Blink. This error is never surfaced
|
| + // to the test JavaScript, but the test code may get an exception if one of
|
| + // these is set.
|
| + setError(errorName) {
|
| + switch (errorName) {
|
| + case "database-error":
|
| + this.error_ = budgetService.BudgetServiceErrorType.DATABASE_ERROR;
|
| + break;
|
| + case "not-supported":
|
| + this.error_ = budgetService.BudgetServiceErrorType.NOT_SUPPORTED;
|
| + break;
|
| + case "no-error":
|
| + this.error_ = budgetService.BudgetServiceErrorType.NONE;
|
| + break;
|
| + }
|
| + }
|
| +
|
| + // This provides an implementation for the Mojo serivce getCost call.
|
| getCost(operationType) {
|
| - return Promise.resolve({ cost:TEST_BUDGET_COST });
|
| + return Promise.resolve({ cost: this.cost_[operationType] });
|
| }
|
|
|
| + // This provides an implementation for the Mojo serivce getBudget call.
|
| getBudget() {
|
| - return Promise.resolve({ budget: [ { time:TEST_BUDGET_TIME, budget_at:TEST_BUDGET_AT } ] });
|
| + return Promise.resolve({ error_type: this.error_, budget: this.budget_ });
|
| + }
|
| +
|
| + // This provides an implementation for the Mojo serivce reserve call.
|
| + reserve() {
|
| + return Promise.resolve({ error_type: this.error_, success: this.success_ });
|
| }
|
| }
|
| return new BudgetServiceMock(mojo.interfaces);
|
|
|