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

Side by Side Diff: components/open_from_clipboard/clipboard_recent_content_ios_unittest.mm

Issue 2230983002: Stop using UIPasteboardChangedNotification. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed unittest. Created 4 years, 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/open_from_clipboard/clipboard_recent_content_ios.h" 5 #include "components/open_from_clipboard/clipboard_recent_content_ios.h"
6 6
7 #import <CoreGraphics/CoreGraphics.h> 7 #import <CoreGraphics/CoreGraphics.h>
8 #import <UIKit/UIKit.h> 8 #import <UIKit/UIKit.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 21 matching lines...) Expand all
32 [[UIPasteboard generalPasteboard] setImage:image]; 32 [[UIPasteboard generalPasteboard] setImage:image];
33 } 33 }
34 34
35 void SetPasteboardContent(const char* data) { 35 void SetPasteboardContent(const char* data) {
36 [[UIPasteboard generalPasteboard] 36 [[UIPasteboard generalPasteboard]
37 setValue:[NSString stringWithUTF8String:data] 37 setValue:[NSString stringWithUTF8String:data]
38 forPasteboardType:@"public.plain-text"]; 38 forPasteboardType:@"public.plain-text"];
39 } 39 }
40 const char kUnrecognizedURL[] = "ftp://foo/"; 40 const char kUnrecognizedURL[] = "ftp://foo/";
41 const char kRecognizedURL[] = "http://bar/"; 41 const char kRecognizedURL[] = "http://bar/";
42 const char kRecognizedURL2[] = "http://bar/2";
42 const char kAppSpecificURL[] = "test://qux/"; 43 const char kAppSpecificURL[] = "test://qux/";
43 const char kAppSpecificScheme[] = "test"; 44 const char kAppSpecificScheme[] = "test";
44 NSTimeInterval kSevenHours = 60 * 60 * 7; 45 NSTimeInterval kSevenHours = 60 * 60 * 7;
45 } // namespace 46 } // namespace
46 47
48 class ClipboardRecentContentIOSWithFakeUptime
49 : public ClipboardRecentContentIOS {
50 public:
51 ClipboardRecentContentIOSWithFakeUptime(const std::string& application_scheme,
52 NSUserDefaults* group_user_defaults)
53 : ClipboardRecentContentIOS(application_scheme, group_user_defaults) {}
54 // Sets the uptime.
55 void SetUptime(base::TimeDelta uptime) { uptime_ = uptime; }
56
57 protected:
58 base::TimeDelta Uptime() const override { return uptime_; }
59
60 private:
61 base::TimeDelta uptime_;
62 };
63
47 class ClipboardRecentContentIOSTest : public ::testing::Test { 64 class ClipboardRecentContentIOSTest : public ::testing::Test {
48 protected: 65 protected:
49 ClipboardRecentContentIOSTest() { 66 ClipboardRecentContentIOSTest() {
50 // By default, set that the device booted 10 days ago. 67 // By default, set that the device booted 10 days ago.
51 ResetClipboardRecentContent(kAppSpecificScheme, 68 ResetClipboardRecentContent(kAppSpecificScheme,
52 base::TimeDelta::FromDays(10)); 69 base::TimeDelta::FromDays(10));
53 } 70 }
54 71
55 void SimulateDeviceRestart() { 72 void SimulateDeviceRestart() {
56 ResetClipboardRecentContent(kAppSpecificScheme, 73 ResetClipboardRecentContent(kAppSpecificScheme,
57 base::TimeDelta::FromSeconds(0)); 74 base::TimeDelta::FromSeconds(0));
58 } 75 }
59 76
60 void ResetClipboardRecentContent(const std::string& application_scheme, 77 void ResetClipboardRecentContent(const std::string& application_scheme,
61 base::TimeDelta time_delta) { 78 base::TimeDelta time_delta) {
62 clipboard_content_.reset( 79 clipboard_content_.reset(new ClipboardRecentContentIOSWithFakeUptime(
63 new ClipboardRecentContentIOS(application_scheme, time_delta)); 80 application_scheme, [NSUserDefaults standardUserDefaults]));
81 clipboard_content_->SetUptime(time_delta);
64 } 82 }
65 83
66 void SetStoredPasteboardChangeDate(NSDate* changeDate) { 84 void SetStoredPasteboardChangeDate(NSDate* changeDate) {
67 clipboard_content_->last_pasteboard_change_date_.reset([changeDate copy]); 85 clipboard_content_->last_pasteboard_change_date_.reset([changeDate copy]);
68 clipboard_content_->SaveToUserDefaults(); 86 clipboard_content_->SaveToUserDefaults();
69 } 87 }
70 88
71 void SetStoredPasteboardChangeCount(NSInteger newChangeCount) { 89 void SetStoredPasteboardChangeCount(NSInteger newChangeCount) {
72 clipboard_content_->last_pasteboard_change_count_ = newChangeCount; 90 clipboard_content_->last_pasteboard_change_count_ = newChangeCount;
73 clipboard_content_->SaveToUserDefaults(); 91 clipboard_content_->SaveToUserDefaults();
74 } 92 }
75 93
76 protected: 94 protected:
77 std::unique_ptr<ClipboardRecentContentIOS> clipboard_content_; 95 std::unique_ptr<ClipboardRecentContentIOSWithFakeUptime> clipboard_content_;
78 }; 96 };
79 97
80 TEST_F(ClipboardRecentContentIOSTest, SchemeFiltering) { 98 TEST_F(ClipboardRecentContentIOSTest, SchemeFiltering) {
81 GURL gurl; 99 GURL gurl;
82 100
83 // Test unrecognized URL. 101 // Test unrecognized URL.
84 SetPasteboardContent(kUnrecognizedURL); 102 SetPasteboardContent(kUnrecognizedURL);
85 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 103 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
86 104
87 // Test recognized URL. 105 // Test recognized URL.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // Check that the pasteboard content is still suppressed. 164 // Check that the pasteboard content is still suppressed.
147 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 165 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
148 166
149 // Check that the even if the device is restarted, pasteboard content is 167 // Check that the even if the device is restarted, pasteboard content is
150 // still suppressed. 168 // still suppressed.
151 SimulateDeviceRestart(); 169 SimulateDeviceRestart();
152 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 170 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
153 171
154 // Check that if the pasteboard changes, the new content is not 172 // Check that if the pasteboard changes, the new content is not
155 // supressed anymore. 173 // supressed anymore.
156 SetPasteboardContent(kRecognizedURL); 174 SetPasteboardContent(kRecognizedURL2);
157 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 175 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
158 } 176 }
159 177
160 // Checks that if user copies something other than a string we don't cache the 178 // Checks that if user copies something other than a string we don't cache the
161 // string in pasteboard. 179 // string in pasteboard.
162 TEST_F(ClipboardRecentContentIOSTest, AddingNonStringRemovesCachedString) { 180 TEST_F(ClipboardRecentContentIOSTest, AddingNonStringRemovesCachedString) {
163 GURL gurl; 181 GURL gurl;
164 SetPasteboardContent(kRecognizedURL); 182 SetPasteboardContent(kRecognizedURL);
165 183
166 // Test that recent pasteboard data is provided. 184 // Test that recent pasteboard data is provided.
167 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 185 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
168 EXPECT_STREQ(kRecognizedURL, gurl.spec().c_str()); 186 EXPECT_STREQ(kRecognizedURL, gurl.spec().c_str());
169 187
170 // Overwrite pasteboard with an image. 188 // Overwrite pasteboard with an image.
171 base::scoped_nsobject<UIImage> image([[UIImage alloc] init]); 189 base::scoped_nsobject<UIImage> image([[UIImage alloc] init]);
172 SetPasteboardImage(TestUIImage()); 190 SetPasteboardImage(TestUIImage());
173 191
174 // Pasteboard should appear empty. 192 // Pasteboard should appear empty.
175 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 193 EXPECT_FALSE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
176 194
177 // Tests that if URL is added again, pasteboard provides it normally. 195 // Tests that if URL is added again, pasteboard provides it normally.
178 SetPasteboardContent(kRecognizedURL); 196 SetPasteboardContent(kRecognizedURL);
179 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl)); 197 EXPECT_TRUE(clipboard_content_->GetRecentURLFromClipboard(&gurl));
180 EXPECT_STREQ(kRecognizedURL, gurl.spec().c_str()); 198 EXPECT_STREQ(kRecognizedURL, gurl.spec().c_str());
181 } 199 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698