17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/bind.h" 69ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/renderer/media/android/media_info_loader.h" 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "content/test/mock_webframeclient.h" 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "content/test/mock_weburlloader.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebMediaPlayer.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebURLError.h" 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebURLRequest.h" 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebURLResponse.h" 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "third_party/WebKit/public/web/WebLocalFrame.h" 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "third_party/WebKit/public/web/WebView.h" 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)using ::testing::_; 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)using ::testing::InSequence; 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)using ::testing::NiceMock; 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochusing blink::WebLocalFrame; 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebString; 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebURLError; 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebURLResponse; 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebView; 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace content { 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const char* kHttpUrl = "http://test"; 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const char kHttpRedirectToSameDomainUrl1[] = "http://test/ing"; 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const char kHttpRedirectToSameDomainUrl2[] = "http://test/ing2"; 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const char kHttpRedirectToDifferentDomainUrl1[] = "http://test2"; 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)static const char kHttpDataUrl[] = "data:audio/wav;base64,UklGRhwMAABXQVZFZm10"; 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const int kHttpOK = 200; 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)static const int kHttpNotFound = 404; 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class MediaInfoLoaderTest : public testing::Test { 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MediaInfoLoaderTest() 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch : view_(WebView::create(NULL)), frame_(WebLocalFrame::create(&client_)) { 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) view_->setMainFrame(frame_); 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~MediaInfoLoaderTest() { 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) view_->close(); 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) frame_->close(); 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void Initialize( 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const char* url, 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaPlayer::CORSMode cors_mode) { 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) gurl_ = GURL(url); 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_.reset(new MediaInfoLoader( 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) gurl_, cors_mode, 577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::Bind(&MediaInfoLoaderTest::ReadyCallback, 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::Unretained(this)))); 597d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 607d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // |test_loader_| will be used when Start() is called. 617d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) url_loader_ = new NiceMock<MockWebURLLoader>(); 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) loader_->test_loader_ = scoped_ptr<blink::WebURLLoader>(url_loader_); 637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void Start() { 667d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) InSequence s; 677d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_CALL(*url_loader_, loadAsynchronously(_, _)); 687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_->Start(view_->mainFrame()); 697d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 707d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 717d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void Stop() { 727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) InSequence s; 737d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_CALL(*url_loader_, cancel()); 747d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_.reset(); 757d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 767d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 777d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void Redirect(const char* url) { 787d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) GURL redirect_url(url); 79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebURLRequest new_request(redirect_url); 80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebURLResponse redirect_response(gurl_); 817d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 827d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_->willSendRequest(url_loader_, new_request, redirect_response); 837d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 847d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::MessageLoop::current()->RunUntilIdle(); 857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 867d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 877d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void SendResponse( 887d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int http_status, MediaInfoLoader::Status expected_status) { 896e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) EXPECT_CALL(*this, ReadyCallback(expected_status, _, _, _)); 907d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_CALL(*url_loader_, cancel()); 917d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) WebURLResponse response(gurl_); 937d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) response.setHTTPHeaderField(WebString::fromUTF8("Content-Length"), 947d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) WebString::fromUTF8("0")); 957d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) response.setExpectedContentLength(0); 967d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) response.setHTTPStatusCode(http_status); 977d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_->didReceiveResponse(url_loader_, response); 987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 997d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1007d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void FailLoad() { 1016e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) EXPECT_CALL(*this, ReadyCallback( 1026e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) MediaInfoLoader::kFailed, _, _, _)); 1037d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) loader_->didFail(url_loader_, WebURLError()); 1047d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 1057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1066e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) MOCK_METHOD4(ReadyCallback, 1076e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) void(MediaInfoLoader::Status, const GURL&, const GURL&, bool)); 1087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1097d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) protected: 1107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) GURL gurl_; 1117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_ptr<MediaInfoLoader> loader_; 1137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NiceMock<MockWebURLLoader>* url_loader_; 1147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MockWebFrameClient client_; 1167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) WebView* view_; 117a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch WebLocalFrame* frame_; 1187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::MessageLoop message_loop_; 1207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) private: 1227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MediaInfoLoaderTest); 1237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 1247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, StartStop) { 126f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Stop(); 1297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, LoadFailure) { 132f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) FailLoad(); 1357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, DataUri) { 1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) Initialize(kHttpDataUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) Start(); 1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SendResponse(0, MediaInfoLoader::kOk); 1415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, HasSingleOriginNoRedirect) { 1447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Make sure no redirect case works as expected. 145f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(loader_->HasSingleOrigin()); 1497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, HasSingleOriginSingleRedirect) { 1527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Test redirect to the same domain. 153f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToSameDomainUrl1); 1567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(loader_->HasSingleOrigin()); 1587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1597d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1607d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, HasSingleOriginDoubleRedirect) { 1617d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Test redirect twice to the same domain. 162f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToSameDomainUrl1); 1657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToSameDomainUrl2); 1667d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1677d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(loader_->HasSingleOrigin()); 1687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1697d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1707d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, HasSingleOriginDifferentDomain) { 1717d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Test redirect to a different domain. 172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1737d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1747d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToDifferentDomainUrl1); 1757d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1767d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(loader_->HasSingleOrigin()); 1777d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1787d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1797d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, HasSingleOriginMultipleDomains) { 1807d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Test redirect to the same domain and then to a different domain. 181f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUnspecified); 1827d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1837d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToSameDomainUrl1); 1847d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Redirect(kHttpRedirectToDifferentDomainUrl1); 1857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1867d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(loader_->HasSingleOrigin()); 1877d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1887d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1897d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, CORSAccessCheckPassed) { 190f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUseCredentials); 1917d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpOK, MediaInfoLoader::kOk); 1937d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(loader_->DidPassCORSAccessCheck()); 1947d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1957d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1967d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST_F(MediaInfoLoaderTest, CORSAccessCheckFailed) { 197f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Initialize(kHttpUrl, blink::WebMediaPlayer::CORSModeUseCredentials); 1987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Start(); 1997d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SendResponse(kHttpNotFound, MediaInfoLoader::kFailed); 2007d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(loader_->DidPassCORSAccessCheck()); 2017d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 2027d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 203eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace content 204