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

Side by Side Diff: ios/chrome/browser/metrics/previous_session_info_unittest.mm

Issue 1207353005: [iOS] Upstream some stability code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « ios/chrome/browser/metrics/previous_session_info.mm ('k') | ios/chrome/browser/pref_names.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 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 "ios/chrome/browser/metrics/previous_session_info.h"
6
7 #include "base/strings/sys_string_conversions.h"
8 #include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/gtest_mac.h"
11
12 namespace {
13
14 // Key in the UserDefaults for a boolean value keeping track of memory warnings.
15 NSString* const kDidSeeMemoryWarningShortlyBeforeTerminating =
16 @"DidSeeMemoryWarning";
17
18 // Key in the NSUserDefaults for a string value that stores the version of the
19 // last session.
20 NSString* const kLastRanVersion = @"LastRanVersion";
21
22 TEST(PreviousSessionInfoTest, InitializationWithEmptyDefaults) {
23 [PreviousSessionInfo resetSharedInstanceForTesting];
24 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
25 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
26 [defaults removeObjectForKey:kLastRanVersion];
27
28 // Instantiate the PreviousSessionInfo sharedInstance.
29 PreviousSessionInfo* sharedInstance = [PreviousSessionInfo sharedInstance];
30
31 // Checks the default values.
32 EXPECT_FALSE([sharedInstance didSeeMemoryWarningShortlyBeforeTerminating]);
33 EXPECT_TRUE([sharedInstance isFirstSessionAfterUpgrade]);
34 }
35
36 TEST(PreviousSessionInfoTest, InitializationWithSameVersionNoMemoryWarning) {
37 [PreviousSessionInfo resetSharedInstanceForTesting];
38 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
39 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
40 [defaults removeObjectForKey:kLastRanVersion];
41
42 // Set the current version as the last ran version.
43 NSString* currentVersion = base::SysUTF8ToNSString(
44 ios::GetChromeBrowserProvider()->GetVersionNumber());
45 [defaults setObject:currentVersion forKey:kLastRanVersion];
46
47 // Instantiate the PreviousSessionInfo sharedInstance.
48 PreviousSessionInfo* sharedInstance = [PreviousSessionInfo sharedInstance];
49
50 // Checks the values.
51 EXPECT_FALSE([sharedInstance didSeeMemoryWarningShortlyBeforeTerminating]);
52 EXPECT_FALSE([sharedInstance isFirstSessionAfterUpgrade]);
53 }
54
55 TEST(PreviousSessionInfoTest, InitializationWithSameVersionMemoryWarning) {
56 [PreviousSessionInfo resetSharedInstanceForTesting];
57 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
58 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
59 [defaults removeObjectForKey:kLastRanVersion];
60
61 // Set the current version as the last ran version.
62 NSString* currentVersion = base::SysUTF8ToNSString(
63 ios::GetChromeBrowserProvider()->GetVersionNumber());
64 [defaults setObject:currentVersion forKey:kLastRanVersion];
65
66 // Set the memory warning flag as a previous session would have.
67 [defaults setBool:YES forKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
68
69 // Instantiate the PreviousSessionInfo sharedInstance.
70 PreviousSessionInfo* sharedInstance = [PreviousSessionInfo sharedInstance];
71
72 // Checks the values.
73 EXPECT_TRUE([sharedInstance didSeeMemoryWarningShortlyBeforeTerminating]);
74 EXPECT_FALSE([sharedInstance isFirstSessionAfterUpgrade]);
75 }
76
77 TEST(PreviousSessionInfoTest, InitializationDifferentVersionNoMemoryWarning) {
78 [PreviousSessionInfo resetSharedInstanceForTesting];
79 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
80 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
81 [defaults removeObjectForKey:kLastRanVersion];
82
83 // Set the current version as the last ran version.
84 [defaults setObject:@"Fake Version" forKey:kLastRanVersion];
85
86 // Instantiate the PreviousSessionInfo sharedInstance.
87 PreviousSessionInfo* sharedInstance = [PreviousSessionInfo sharedInstance];
88
89 // Checks the values.
90 EXPECT_FALSE([sharedInstance didSeeMemoryWarningShortlyBeforeTerminating]);
91 EXPECT_TRUE([sharedInstance isFirstSessionAfterUpgrade]);
92 }
93
94 TEST(PreviousSessionInfoTest, InitializationDifferentVersionMemoryWarning) {
95 [PreviousSessionInfo resetSharedInstanceForTesting];
96 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
97 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
98 [defaults removeObjectForKey:kLastRanVersion];
99
100 // Set the current version as the last ran version.
101 [defaults setObject:@"Fake Version" forKey:kLastRanVersion];
102
103 // Set the memory warning flag as a previous session would have.
104 [defaults setBool:YES forKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
105
106 // Instantiate the PreviousSessionInfo sharedInstance.
107 PreviousSessionInfo* sharedInstance = [PreviousSessionInfo sharedInstance];
108
109 // Checks the values.
110 EXPECT_TRUE([sharedInstance didSeeMemoryWarningShortlyBeforeTerminating]);
111 EXPECT_TRUE([sharedInstance isFirstSessionAfterUpgrade]);
112 }
113
114 TEST(PreviousSessionInfoTest, BeginRecordingCurrentSession) {
115 [PreviousSessionInfo resetSharedInstanceForTesting];
116 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
117 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
118 [defaults removeObjectForKey:kLastRanVersion];
119
120 // Set the memory warning flag as a previous session would have.
121 [defaults setBool:YES forKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
122
123 [[PreviousSessionInfo sharedInstance] beginRecordingCurrentSession];
124
125 // Check that the version has been updated.
126 EXPECT_NSEQ(base::SysUTF8ToNSString(
127 ios::GetChromeBrowserProvider()->GetVersionNumber()),
128 [defaults stringForKey:kLastRanVersion]);
129
130 // Check that the memory warning flag has been reset.
131 EXPECT_FALSE(
132 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
133 }
134
135 TEST(PreviousSessionInfoTest, SetMemoryWarningFlagNoOpUntilRecordingBegins) {
136 [PreviousSessionInfo resetSharedInstanceForTesting];
137 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
138 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
139 [defaults removeObjectForKey:kLastRanVersion];
140
141 // Call the flag setter.
142 [[PreviousSessionInfo sharedInstance] setMemoryWarningFlag];
143
144 EXPECT_FALSE(
145 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
146 }
147
148 TEST(PreviousSessionInfoTest, ResetMemoryWarningFlagNoOpUntilRecordingBegins) {
149 [PreviousSessionInfo resetSharedInstanceForTesting];
150 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
151 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
152 [defaults removeObjectForKey:kLastRanVersion];
153
154 // Set the memory warning flag as a previous session would have.
155 [defaults setBool:YES forKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
156
157 // Call the memory warning flag resetter.
158 [[PreviousSessionInfo sharedInstance] resetMemoryWarningFlag];
159
160 EXPECT_TRUE(
161 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
162 }
163
164 TEST(PreviousSessionInfoTest, MemoryWarningFlagMethodsAfterRecordingBegins) {
165 [PreviousSessionInfo resetSharedInstanceForTesting];
166 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
167 [defaults removeObjectForKey:kDidSeeMemoryWarningShortlyBeforeTerminating];
168 [defaults removeObjectForKey:kLastRanVersion];
169
170 // Launch the recording of the session.
171 [[PreviousSessionInfo sharedInstance] beginRecordingCurrentSession];
172
173 EXPECT_FALSE(
174 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
175
176 // Call the memory warning flag setter.
177 [[PreviousSessionInfo sharedInstance] setMemoryWarningFlag];
178
179 EXPECT_TRUE(
180 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
181
182 // Call the memory warning flag resetter.
183 [[PreviousSessionInfo sharedInstance] resetMemoryWarningFlag];
184
185 EXPECT_FALSE(
186 [defaults boolForKey:kDidSeeMemoryWarningShortlyBeforeTerminating]);
187 }
188
189 } // namespace
OLDNEW
« no previous file with comments | « ios/chrome/browser/metrics/previous_session_info.mm ('k') | ios/chrome/browser/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698