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

Side by Side Diff: ios/web/web_state/ui/crw_static_file_web_view_unittest.mm

Issue 1043243003: Upstream most of ios/web/net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove accidentally-added clients Created 5 years, 8 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/web/web_state/ui/crw_static_file_web_view.mm ('k') | no next file » | 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 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/web_state/ui/crw_static_file_web_view.h"
6
7 #import <Foundation/Foundation.h>
8
9 #include "base/mac/scoped_nsobject.h"
10 #include "ios/web/net/request_group_util.h"
11 #include "ios/web/public/test/test_browser_state.h"
12 #include "ios/web/public/test/test_web_thread_bundle.h"
13 #import "ios/web/ui_web_view_util.h"
14 #include "testing/platform_test.h"
15 #import "third_party/ocmock/OCMock/OCMock.h"
16
17 @interface CRWStaticFileWebView (Testing)
18 + (BOOL)isStaticFileUserAgent:(NSString*)userAgent;
19 @end
20
21 class CRWStaticFileWebViewTest : public PlatformTest {
22 public:
23 CRWStaticFileWebViewTest() {}
24
25 protected:
26 void SetUp() override { PlatformTest::SetUp(); }
27 void TearDown() override { PlatformTest::TearDown(); }
28
29 // Gets the user agent of |web_view|, using javascript.
30 NSString* GetWebViewUserAgent(UIWebView* web_view) {
31 NSString* const kJsUserAgent = @"navigator.userAgent";
32 return [web_view stringByEvaluatingJavaScriptFromString:kJsUserAgent];
33 };
34
35 web::TestWebThreadBundle thread_bundle_;
36 web::TestBrowserState browser_state_;
37 };
38
39 // Tests that requests for images are considered as static file requests,
40 // regardless of the user agent.
41 TEST_F(CRWStaticFileWebViewTest, TestIsStaticImageRequestTrue) {
42 // Empty dictionary so User-Agent check fails.
43 NSDictionary* dictionary = @{};
44 NSURL* url = [NSURL URLWithString:@"file:///show/this.png"];
45 id mockRequest = [OCMockObject mockForClass:[NSURLRequest class]];
46 [[[mockRequest stub] andReturn:dictionary] allHTTPHeaderFields];
47 [[[mockRequest stub] andReturn:url] URL];
48 EXPECT_TRUE([CRWStaticFileWebView isStaticFileRequest:mockRequest]);
49 }
50
51 // Tests that requests for files are considered as static file requests if they
52 // have the static file user agent.
53 TEST_F(CRWStaticFileWebViewTest, TestIsStaticFileRequestTrue) {
54 base::scoped_nsobject<UIWebView> webView(
55 [[CRWStaticFileWebView alloc] initWithFrame:CGRectZero
56 browserState:&browser_state_]);
57 EXPECT_TRUE(webView);
58 NSString* userAgent = GetWebViewUserAgent(webView);
59 NSDictionary* dictionary = @{ @"User-Agent" : userAgent };
60 NSURL* url = [NSURL URLWithString:@"file:///some/random/url.html"];
61 id mockRequest = [OCMockObject mockForClass:[NSURLRequest class]];
62 [[[mockRequest stub] andReturn:dictionary] allHTTPHeaderFields];
63 [[[mockRequest stub] andReturn:url] URL];
64 EXPECT_TRUE([CRWStaticFileWebView isStaticFileRequest:mockRequest]);
65 }
66
67
68 // Tests that arbitrary files cannot be retrieved by a web view for
69 // static file content.
70 TEST_F(CRWStaticFileWebViewTest, TestIsStaticFileRequestFalse) {
71 // Empty dictionary so User-Agent check fails.
72 NSDictionary* dictionary = @{};
73 NSURL* url = [NSURL URLWithString:@"file:///steal/this/file.html"];
74 id mockRequest = [OCMockObject mockForClass:[NSURLRequest class]];
75 [[[mockRequest stub] andReturn:dictionary] allHTTPHeaderFields];
76 [[[mockRequest stub] andReturn:url] URL];
77 EXPECT_FALSE([CRWStaticFileWebView isStaticFileRequest:mockRequest]);
78 }
79
80 // Tests that the user agent of a CRWStaticFileWebView includes a request group
81 // ID.
82 TEST_F(CRWStaticFileWebViewTest, TestExtractRequestGroupIDStaticFile) {
83 base::scoped_nsobject<UIWebView> webView(
84 [[CRWStaticFileWebView alloc] initWithFrame:CGRectZero
85 browserState:&browser_state_]);
86 EXPECT_TRUE(webView);
87 NSString* userAgentString = GetWebViewUserAgent(webView);
88 EXPECT_TRUE(web::ExtractRequestGroupIDFromUserAgent(userAgentString));
89 }
OLDNEW
« no previous file with comments | « ios/web/web_state/ui/crw_static_file_web_view.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698