Index: chrome/browser/budget_service/budget_database_unittest.cc |
diff --git a/chrome/browser/budget_service/budget_database_unittest.cc b/chrome/browser/budget_service/budget_database_unittest.cc |
index 37d5e34a8a2aaedd86faf9aea26a8fca2ee2c50f..3d34e06663735018885742b6c7005964a3636db7 100644 |
--- a/chrome/browser/budget_service/budget_database_unittest.cc |
+++ b/chrome/browser/budget_service/budget_database_unittest.cc |
@@ -42,11 +42,11 @@ class BudgetDatabaseTest : public ::testing::Test { |
// Create two chunks and give them default values. |
budget_service::BudgetChunk* budget_chunk = budget.add_budget(); |
- budget_chunk->set_budget_amount(kDefaultBudget1); |
- budget_chunk->set_expiration_timestamp(kDefaultExpiration); |
+ budget_chunk->set_amount(kDefaultBudget1); |
+ budget_chunk->set_expiration(kDefaultExpiration); |
budget_chunk = budget.add_budget(); |
- budget_chunk->set_budget_amount(kDefaultBudget2); |
- budget_chunk->set_expiration_timestamp(kDefaultExpiration + 1); |
+ budget_chunk->set_amount(kDefaultBudget2); |
+ budget_chunk->set_expiration(kDefaultExpiration + 1); |
base::RunLoop run_loop; |
db_.SetValue(GURL(kTestOrigin), budget, |
@@ -75,7 +75,30 @@ class BudgetDatabaseTest : public ::testing::Test { |
return std::move(budget_); |
} |
+ void GetBudgetDetailsComplete( |
+ base::Closure run_loop_closure, |
+ bool success, |
+ double debt, |
+ const BudgetDatabase::BudgetExpectation& expectation) { |
+ success_ = success; |
+ debt_ = debt; |
+ expectation_ = expectation; |
+ run_loop_closure.Run(); |
+ } |
+ |
+ void GetBudgetDetails() { |
+ base::RunLoop run_loop; |
+ db_.GetBudgetDetails( |
+ GURL(kTestOrigin), |
+ base::Bind(&BudgetDatabaseTest::GetBudgetDetailsComplete, |
+ base::Unretained(this), run_loop.QuitClosure())); |
+ run_loop.Run(); |
+ } |
+ |
Profile* profile() { return &profile_; } |
+ const BudgetDatabase::BudgetExpectation& expectation() { |
+ return expectation_; |
+ } |
protected: |
bool success_; |
@@ -85,6 +108,8 @@ class BudgetDatabaseTest : public ::testing::Test { |
std::unique_ptr<budget_service::Budget> budget_; |
TestingProfile profile_; |
BudgetDatabase db_; |
+ double debt_ = 0; |
+ BudgetDatabase::BudgetExpectation expectation_; |
}; |
TEST_F(BudgetDatabaseTest, ReadAndWriteTest) { |
@@ -93,9 +118,38 @@ TEST_F(BudgetDatabaseTest, ReadAndWriteTest) { |
ASSERT_TRUE(success_); |
EXPECT_EQ(kDefaultDebt, b->debt()); |
- EXPECT_EQ(kDefaultBudget1, b->budget(0).budget_amount()); |
- EXPECT_EQ(kDefaultBudget2, b->budget(1).budget_amount()); |
- EXPECT_EQ(kDefaultExpiration, b->budget(0).expiration_timestamp()); |
+ EXPECT_EQ(kDefaultBudget1, b->budget(0).amount()); |
+ EXPECT_EQ(kDefaultBudget2, b->budget(1).amount()); |
+ EXPECT_EQ(kDefaultExpiration, b->budget(0).expiration()); |
+} |
+ |
+TEST_F(BudgetDatabaseTest, BudgetDetailsTest) { |
+ ASSERT_TRUE(SetBudgetWithDefaultValues()); |
+ GetBudgetDetails(); |
+ |
+ // Get the expectation and validate it. |
+ const auto& expected_value = expectation(); |
+ ASSERT_TRUE(success_); |
+ ASSERT_EQ(3U, expected_value.size()); |
+ |
+ // Make sure that the correct data is returned. |
+ auto iter = expected_value.begin(); |
+ |
+ // First value should be [total_budget, now] |
+ EXPECT_EQ(kDefaultBudget1 + kDefaultBudget2, iter->first); |
+ // TODO(harkness): This will be "now" in the final version. For now, it's |
+ // just 0.0. |
+ EXPECT_EQ(0, iter->second); |
+ |
+ // The next value should be the budget after the first chunk expires. |
+ iter++; |
+ EXPECT_EQ(kDefaultBudget2, iter->first); |
+ EXPECT_EQ(kDefaultExpiration, iter->second); |
+ |
+ // The final value gives the budget of 0.0 after the second chunk expires. |
+ iter++; |
+ EXPECT_EQ(0, iter->first); |
+ EXPECT_EQ(kDefaultExpiration + 1, iter->second); |
} |
} // namespace |