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

Side by Side Diff: ios/web/net/clients/crw_js_injection_network_client_unittest.mm

Issue 2239773002: Annotates functions returning retained objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removes functions that are not in headers AND not in ios code. 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 2014 The Chromium Authors. All rights reserved. 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 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 "ios/web/net/clients/crw_js_injection_network_client.h" 5 #include "ios/web/net/clients/crw_js_injection_network_client.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 test_data_.reset([[NSData dataWithContentsOfFile: 104 test_data_.reset([[NSData dataWithContentsOfFile:
105 base::SysUTF8ToNSString(file_path.value())] retain]); 105 base::SysUTF8ToNSString(file_path.value())] retain]);
106 ASSERT_TRUE(test_data_); 106 ASSERT_TRUE(test_data_);
107 } 107 }
108 108
109 void TearDown() override { EXPECT_OCMOCK_VERIFY(mock_web_proxy_); } 109 void TearDown() override { EXPECT_OCMOCK_VERIFY(mock_web_proxy_); }
110 110
111 protected: 111 protected:
112 // Returns a CRNHTTPURLResponse. If |include_content_length|, header includes 112 // Returns a CRNHTTPURLResponse. If |include_content_length|, header includes
113 // Content-Length set to the length of test_data_. 113 // Content-Length set to the length of test_data_.
114 CRNHTTPURLResponse* CreateTestResponse(BOOL include_content_length); 114 CRNHTTPURLResponse* CreateTestResponse(BOOL include_content_length)
115 NS_RETURNS_RETAINED;
115 116
116 // Returns number of times an injected cr_web script tag is found in the 117 // Returns number of times an injected cr_web script tag is found in the
117 // underlying client's loaded data. Script tag should immediately follow 118 // underlying client's loaded data. Script tag should immediately follow
118 // the html start tag, if it exists, or should be injected before any header, 119 // the html start tag, if it exists, or should be injected before any header,
119 // if the first tag is something other than an html start tag. 120 // if the first tag is something other than an html start tag.
120 NSUInteger GetScriptTagCount() const; 121 NSUInteger GetScriptTagCount() const;
121 122
122 // Checks that if response forwarded to the underlying client has header field 123 // Checks that if response forwarded to the underlying client has header field
123 // Content-Length, the value matches the length of the data. 124 // Content-Length, the value matches the length of the data.
124 void ExpectConsistentContentLength(); 125 void ExpectConsistentContentLength();
125 126
126 base::scoped_nsobject<CRWJSInjectionNetworkClient> js_injection_client_; 127 base::scoped_nsobject<CRWJSInjectionNetworkClient> js_injection_client_;
127 base::scoped_nsobject<UnderlyingClient> underlying_client_; 128 base::scoped_nsobject<UnderlyingClient> underlying_client_;
128 base::scoped_nsobject<OCMockObject> mock_web_proxy_; 129 base::scoped_nsobject<OCMockObject> mock_web_proxy_;
129 base::scoped_nsobject<NSData> test_data_; 130 base::scoped_nsobject<NSData> test_data_;
130 }; 131 };
131 132
132 CRNHTTPURLResponse* CRWJSInjectionNetworkClientTest::CreateTestResponse( 133 CRNHTTPURLResponse* CRWJSInjectionNetworkClientTest::CreateTestResponse(
133 BOOL include_content_length) { 134 BOOL include_content_length) NS_RETURNS_RETAINED {
Eugene But (OOO till 7-30) 2016/08/16 16:45:48 Is it necessary to annotate in both interface and
stkhapugin 2016/08/16 16:51:49 Actually this annotation only makes a difference i
Eugene But (OOO till 7-30) 2016/08/16 17:02:31 If |NS_RETURNS_RETAINED| in implementation does no
134 NSMutableDictionary *headers = [NSMutableDictionary 135 NSMutableDictionary *headers = [NSMutableDictionary
135 dictionaryWithDictionary:@{ @"Content-Type" : @"text/html" }]; 136 dictionaryWithDictionary:@{ @"Content-Type" : @"text/html" }];
136 if (include_content_length) { 137 if (include_content_length) {
137 headers[@"Content-Length"] = @([test_data_ length]).stringValue; 138 headers[@"Content-Length"] = @([test_data_ length]).stringValue;
138 } 139 }
139 return [[CRNHTTPURLResponse alloc] 140 return [[CRNHTTPURLResponse alloc]
140 initWithURL:[NSURL URLWithString:@"http://testjsinjection.html"] 141 initWithURL:[NSURL URLWithString:@"http://testjsinjection.html"]
141 statusCode:200 142 statusCode:200
142 HTTPVersion:@"HTTP/1.1" 143 HTTPVersion:@"HTTP/1.1"
143 headerFields:headers]; 144 headerFields:headers];
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 // Load data one byte at a time. 280 // Load data one byte at a time.
280 for (NSUInteger i = 0; i < [test_data_ length]; i++) { 281 for (NSUInteger i = 0; i < [test_data_ length]; i++) {
281 [js_injection_client_ didLoadData: 282 [js_injection_client_ didLoadData:
282 [test_data_ subdataWithRange:NSMakeRange(i, 1u)]]; 283 [test_data_ subdataWithRange:NSMakeRange(i, 1u)]];
283 } 284 }
284 [js_injection_client_ didFinishLoading]; 285 [js_injection_client_ didFinishLoading];
285 286
286 EXPECT_EQ(1u, GetScriptTagCount()); 287 EXPECT_EQ(1u, GetScriptTagCount());
287 ExpectConsistentContentLength(); 288 ExpectConsistentContentLength();
288 } 289 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698