OLD | NEW |
| (Empty) |
1 // Copyright 2014 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 #import "ios/web/crw_network_activity_indicator_manager.h" | |
6 | |
7 #import <UIKit/UIKit.h> | |
8 | |
9 #include "base/mac/scoped_nsobject.h" | |
10 #include "testing/gtest_mac.h" | |
11 #include "testing/platform_test.h" | |
12 | |
13 namespace { | |
14 | |
15 NSString* const kNetworkActivityKeyOne = | |
16 @"CRWNetworkActivityIndicatorManagerTest.NetworkActivityIndicatorKeyOne"; | |
17 NSString* const kNetworkActivityKeyTwo = | |
18 @"CRWNetworkActivityIndicatorManagerTest.NetworkActivityIndicatorKeyTwo"; | |
19 | |
20 class CRWNetworkActivityIndicatorManagerTest : public PlatformTest { | |
21 public: | |
22 CRWNetworkActivityIndicatorManagerTest() | |
23 : manager_([[CRWNetworkActivityIndicatorManager alloc] init]) {} | |
24 | |
25 protected: | |
26 void ExpectNetworkActivity(NSUInteger groupOneCount, | |
27 NSUInteger groupTwoCount) { | |
28 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], | |
29 groupOneCount); | |
30 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], | |
31 groupTwoCount); | |
32 EXPECT_EQ([manager_ numTotalNetworkTasks], groupOneCount + groupTwoCount); | |
33 if (groupOneCount + groupTwoCount > 0U) { | |
34 EXPECT_TRUE( | |
35 [[UIApplication sharedApplication] | |
36 isNetworkActivityIndicatorVisible]); | |
37 } else { | |
38 EXPECT_FALSE( | |
39 [[UIApplication sharedApplication] | |
40 isNetworkActivityIndicatorVisible]); | |
41 } | |
42 } | |
43 base::scoped_nsobject<CRWNetworkActivityIndicatorManager> manager_; | |
44 }; | |
45 | |
46 TEST_F(CRWNetworkActivityIndicatorManagerTest, TestNumNetworkTasksForGroup) { | |
47 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], 0U); | |
48 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], 0U); | |
49 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
50 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], 2U); | |
51 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], 0U); | |
52 [manager_ startNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
53 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], 2U); | |
54 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], 3U); | |
55 [manager_ stopNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
56 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], 0U); | |
57 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], 3U); | |
58 [manager_ stopNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
59 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyOne], 0U); | |
60 EXPECT_EQ([manager_ numNetworkTasksForGroup:kNetworkActivityKeyTwo], 0U); | |
61 } | |
62 | |
63 TEST_F(CRWNetworkActivityIndicatorManagerTest, TestNumTotalNetworkTasks) { | |
64 EXPECT_EQ([manager_ numTotalNetworkTasks], 0U); | |
65 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
66 EXPECT_EQ([manager_ numTotalNetworkTasks], 2U); | |
67 [manager_ startNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
68 EXPECT_EQ([manager_ numTotalNetworkTasks], 5U); | |
69 [manager_ stopNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
70 EXPECT_EQ([manager_ numTotalNetworkTasks], 3U); | |
71 [manager_ stopNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
72 EXPECT_EQ([manager_ numTotalNetworkTasks], 0U); | |
73 } | |
74 | |
75 TEST_F(CRWNetworkActivityIndicatorManagerTest, | |
76 StartStopNetworkTaskForOneGroup) { | |
77 ExpectNetworkActivity(0U, 0U); | |
78 [manager_ startNetworkTaskForGroup:kNetworkActivityKeyOne]; | |
79 ExpectNetworkActivity(1U, 0U); | |
80 [manager_ stopNetworkTaskForGroup:kNetworkActivityKeyOne]; | |
81 ExpectNetworkActivity(0U, 0U); | |
82 } | |
83 | |
84 TEST_F(CRWNetworkActivityIndicatorManagerTest, | |
85 StartStopNetworkTaskForTwoGroups) { | |
86 ExpectNetworkActivity(0U, 0U); | |
87 [manager_ startNetworkTaskForGroup:kNetworkActivityKeyOne]; | |
88 ExpectNetworkActivity(1U, 0U); | |
89 [manager_ startNetworkTaskForGroup:kNetworkActivityKeyTwo]; | |
90 ExpectNetworkActivity(1U, 1U); | |
91 [manager_ stopNetworkTaskForGroup:kNetworkActivityKeyOne]; | |
92 ExpectNetworkActivity(0U, 1U); | |
93 [manager_ stopNetworkTaskForGroup:kNetworkActivityKeyTwo]; | |
94 ExpectNetworkActivity(0U, 0U); | |
95 } | |
96 | |
97 TEST_F(CRWNetworkActivityIndicatorManagerTest, | |
98 StartStopNetworkTasksForOneGroup) { | |
99 ExpectNetworkActivity(0U, 0U); | |
100 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
101 ExpectNetworkActivity(2U, 0U); | |
102 [manager_ stopNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
103 ExpectNetworkActivity(0U, 0U); | |
104 } | |
105 | |
106 TEST_F(CRWNetworkActivityIndicatorManagerTest, | |
107 StartStopNetworkTasksForTwoGroups) { | |
108 ExpectNetworkActivity(0U, 0U); | |
109 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
110 ExpectNetworkActivity(2U, 0U); | |
111 [manager_ startNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
112 ExpectNetworkActivity(2U, 3U); | |
113 [manager_ stopNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
114 ExpectNetworkActivity(0U, 3U); | |
115 [manager_ stopNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
116 ExpectNetworkActivity(0U, 0U); | |
117 } | |
118 | |
119 TEST_F(CRWNetworkActivityIndicatorManagerTest, ClearNetworkTasksForGroup) { | |
120 ExpectNetworkActivity(0U, 0U); | |
121 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
122 ExpectNetworkActivity(2U, 0U); | |
123 [manager_ clearNetworkTasksForGroup:kNetworkActivityKeyOne]; | |
124 ExpectNetworkActivity(0U, 0U); | |
125 } | |
126 | |
127 TEST_F(CRWNetworkActivityIndicatorManagerTest, | |
128 ClearNetworkTasksForUnusedGroup) { | |
129 ExpectNetworkActivity(0U, 0U); | |
130 [manager_ clearNetworkTasksForGroup:kNetworkActivityKeyOne]; | |
131 ExpectNetworkActivity(0U, 0U); | |
132 } | |
133 | |
134 TEST_F(CRWNetworkActivityIndicatorManagerTest, StartStopNetworkTasksInChunks) { | |
135 ExpectNetworkActivity(0U, 0U); | |
136 [manager_ startNetworkTasks:2U forGroup:kNetworkActivityKeyOne]; | |
137 ExpectNetworkActivity(2U, 0U); | |
138 [manager_ startNetworkTasks:3U forGroup:kNetworkActivityKeyTwo]; | |
139 ExpectNetworkActivity(2U, 3U); | |
140 [manager_ startNetworkTasks:7U forGroup:kNetworkActivityKeyOne]; | |
141 ExpectNetworkActivity(9U, 3U); | |
142 [manager_ startNetworkTaskForGroup:kNetworkActivityKeyTwo]; | |
143 ExpectNetworkActivity(9U, 4U); | |
144 [manager_ stopNetworkTasks:4U forGroup:kNetworkActivityKeyOne]; | |
145 ExpectNetworkActivity(5U, 4U); | |
146 [manager_ stopNetworkTasks:2U forGroup:kNetworkActivityKeyTwo]; | |
147 ExpectNetworkActivity(5U, 2U); | |
148 [manager_ stopNetworkTasks:5U forGroup:kNetworkActivityKeyOne]; | |
149 ExpectNetworkActivity(0U, 2U); | |
150 [manager_ clearNetworkTasksForGroup:kNetworkActivityKeyTwo]; | |
151 ExpectNetworkActivity(0U, 0U); | |
152 } | |
153 | |
154 } // namespace | |
OLD | NEW |