• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/chromeos/network_message_observer.h"
6 
7 #include "base/time.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 namespace chromeos {
11 
12 namespace {
13 
CreateDataPlan(CellularDataPlanType type,int64 start_sec,int64 end_sec,int64 bytes,int64 used)14 CellularDataPlan CreateDataPlan(CellularDataPlanType type, int64 start_sec,
15                                 int64 end_sec, int64 bytes, int64 used) {
16   CellularDataPlan plan;
17   plan.plan_type = type;
18   plan.plan_start_time = base::Time::FromDoubleT(start_sec);
19   plan.plan_end_time = base::Time::FromDoubleT(end_sec);
20   plan.plan_data_bytes = bytes;
21   plan.data_bytes_used = used;
22   return plan;
23 }
24 
25 }  // namespace
26 
27 // Test the code that checks if a data plan is an applicable backup plan.
TEST(NetworkMessageObserverTest,TestIsApplicableBackupPlan)28 TEST(NetworkMessageObserverTest, TestIsApplicableBackupPlan) {
29   // IsApplicableBackupPlan returns true if:
30   //   (unlimited OR used bytes < max bytes) AND
31   //   ((start time - 1 sec) <= end time of currently active plan).
32 
33   // Current plan that ends at 100.
34   CellularDataPlan plan =
35       CreateDataPlan(CELLULAR_DATA_PLAN_UNLIMITED, 0, 100, 0, 0);
36 
37   // Test unlimited plans.
38   CellularDataPlan time_50 =
39       CreateDataPlan(CELLULAR_DATA_PLAN_UNLIMITED, 50, 500, 0, 0);
40   CellularDataPlan time_100 =
41       CreateDataPlan(CELLULAR_DATA_PLAN_UNLIMITED, 100, 500, 0, 0);
42   CellularDataPlan time_101 =
43       CreateDataPlan(CELLULAR_DATA_PLAN_UNLIMITED, 101, 500, 0, 0);
44   CellularDataPlan time_102 =
45       CreateDataPlan(CELLULAR_DATA_PLAN_UNLIMITED, 102, 500, 0, 0);
46   EXPECT_TRUE(NetworkMessageObserver::IsApplicableBackupPlan(&plan, &time_50));
47   EXPECT_TRUE(NetworkMessageObserver::IsApplicableBackupPlan(&plan, &time_100));
48   EXPECT_TRUE(NetworkMessageObserver::IsApplicableBackupPlan(&plan, &time_101));
49   EXPECT_FALSE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
50                                                               &time_102));
51 
52   // Test data plans.
53   CellularDataPlan data_0_0 =
54       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 100, 500, 0, 0);
55   CellularDataPlan data_100_0 =
56       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 100, 500, 100, 0);
57   CellularDataPlan data_100_50 =
58       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 100, 500, 100, 50);
59   CellularDataPlan data_100_100 =
60       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 100, 500, 100, 100);
61   CellularDataPlan data_100_200 =
62       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 100, 500, 100, 200);
63   CellularDataPlan data_100_0_gap =
64       CreateDataPlan(CELLULAR_DATA_PLAN_METERED_PAID, 200, 500, 100, 0);
65   EXPECT_FALSE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
66                                                               &data_0_0));
67   EXPECT_TRUE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
68                                                              &data_100_0));
69   EXPECT_TRUE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
70                                                              &data_100_50));
71   EXPECT_FALSE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
72                                                               &data_100_100));
73   EXPECT_FALSE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
74                                                               &data_100_200));
75   EXPECT_FALSE(NetworkMessageObserver::IsApplicableBackupPlan(&plan,
76                                                               &data_100_0_gap));
77 }
78 
79 
80 }  // namespace chromeos
81