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

Unified Diff: third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp

Issue 2399463007: AssociatedURLLoader shouldn't derive from WebURLLoader (Closed)
Patch Set: Rebase Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
diff --git a/third_party/WebKit/Source/web/AssociatedURLLoaderTest.cpp b/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
similarity index 86%
rename from third_party/WebKit/Source/web/AssociatedURLLoaderTest.cpp
rename to third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
index 7775028e19362c25b7e91fd05704e908c21bacba..741535a980792e3fb2deef62aa9bf67100db1acb 100644
--- a/third_party/WebKit/Source/web/AssociatedURLLoaderTest.cpp
+++ b/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
@@ -28,20 +28,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "public/web/WebAssociatedURLLoader.h"
+
#include "platform/testing/URLTestHelpers.h"
#include "platform/testing/UnitTestHelpers.h"
#include "public/platform/Platform.h"
#include "public/platform/WebString.h"
#include "public/platform/WebThread.h"
#include "public/platform/WebURL.h"
-#include "public/platform/WebURLLoader.h"
-#include "public/platform/WebURLLoaderClient.h"
#include "public/platform/WebURLLoaderMockFactory.h"
#include "public/platform/WebURLRequest.h"
#include "public/platform/WebURLResponse.h"
+#include "public/web/WebAssociatedURLLoaderClient.h"
+#include "public/web/WebAssociatedURLLoaderOptions.h"
#include "public/web/WebCache.h"
#include "public/web/WebFrame.h"
-#include "public/web/WebURLLoaderOptions.h"
#include "public/web/WebView.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "web/tests/FrameTestHelpers.h"
@@ -55,10 +56,10 @@ using blink::testing::runPendingTasks;
namespace blink {
-class AssociatedURLLoaderTest : public ::testing::Test,
- public WebURLLoaderClient {
+class WebAssociatedURLLoaderTest : public ::testing::Test,
+ public WebAssociatedURLLoaderClient {
public:
- AssociatedURLLoaderTest()
+ WebAssociatedURLLoaderTest()
: m_willFollowRedirect(false),
m_didSendData(false),
m_didReceiveResponse(false),
@@ -112,17 +113,16 @@ class AssociatedURLLoaderTest : public ::testing::Test,
Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
}
- std::unique_ptr<WebURLLoader> createAssociatedURLLoader(
- const WebURLLoaderOptions options = WebURLLoaderOptions()) {
+ std::unique_ptr<WebAssociatedURLLoader> createAssociatedURLLoader(
+ const WebAssociatedURLLoaderOptions options =
+ WebAssociatedURLLoaderOptions()) {
return wrapUnique(mainFrame()->createAssociatedURLLoader(options));
}
- // WebURLLoaderClient implementation.
- bool willFollowRedirect(WebURLLoader* loader,
- WebURLRequest& newRequest,
+ // WebAssociatedURLLoaderClient implementation.
+ bool willFollowRedirect(const WebURLRequest& newRequest,
const WebURLResponse& redirectResponse) override {
m_willFollowRedirect = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
EXPECT_EQ(m_expectedNewRequest.url(), newRequest.url());
// Check that CORS simple headers are transferred to the new request.
EXPECT_EQ(m_expectedNewRequest.httpHeaderField("accept"),
@@ -135,64 +135,41 @@ class AssociatedURLLoaderTest : public ::testing::Test,
return true;
}
- void didSendData(WebURLLoader* loader,
- unsigned long long bytesSent,
+ void didSendData(unsigned long long bytesSent,
unsigned long long totalBytesToBeSent) override {
m_didSendData = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
}
- void didReceiveResponse(WebURLLoader* loader,
- const WebURLResponse& response) override {
+ void didReceiveResponse(const WebURLResponse& response) override {
m_didReceiveResponse = true;
m_actualResponse = WebURLResponse(response);
- EXPECT_EQ(m_expectedLoader.get(), loader);
EXPECT_EQ(m_expectedResponse.url(), response.url());
EXPECT_EQ(m_expectedResponse.httpStatusCode(), response.httpStatusCode());
}
- void didDownloadData(WebURLLoader* loader,
- int dataLength,
- int encodedDataLength) override {
- m_didDownloadData = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
- }
+ void didDownloadData(int dataLength) override { m_didDownloadData = true; }
- void didReceiveData(WebURLLoader* loader,
- const char* data,
- int dataLength,
- int encodedDataLength,
- int encodedBodyLength) override {
+ void didReceiveData(const char* data, int dataLength) override {
m_didReceiveData = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
EXPECT_TRUE(data);
EXPECT_GT(dataLength, 0);
}
- void didReceiveCachedMetadata(WebURLLoader* loader,
- const char* data,
- int dataLength) override {
+ void didReceiveCachedMetadata(const char* data, int dataLength) override {
m_didReceiveCachedMetadata = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
}
- void didFinishLoading(WebURLLoader* loader,
- double finishTime,
- int64_t encodedDataLength) override {
+ void didFinishLoading(double finishTime) override {
m_didFinishLoading = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
}
- void didFail(WebURLLoader* loader, const WebURLError& error) override {
- m_didFail = true;
- EXPECT_EQ(m_expectedLoader.get(), loader);
- }
+ void didFail(const WebURLError& error) override { m_didFail = true; }
void CheckMethodFails(const char* unsafeMethod) {
WebURLRequest request;
request.setURL(toKURL("http://www.test.com/success.html"));
request.setHTTPMethod(WebString::fromUTF8(unsafeMethod));
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.untrustedHTTP = true;
CheckFails(request, options);
}
@@ -204,19 +181,21 @@ class AssociatedURLLoaderTest : public ::testing::Test,
void CheckHeaderFails(const char* headerField, const char* headerValue) {
WebURLRequest request;
request.setURL(toKURL("http://www.test.com/success.html"));
- if (equalIgnoringASCIICase(WebString::fromUTF8(headerField), "referer"))
+ if (equalIgnoringASCIICase(WebString::fromUTF8(headerField), "referer")) {
request.setHTTPReferrer(WebString::fromUTF8(headerValue),
WebReferrerPolicyDefault);
- else
+ } else {
request.setHTTPHeaderField(WebString::fromUTF8(headerField),
WebString::fromUTF8(headerValue));
- WebURLLoaderOptions options;
+ }
+ WebAssociatedURLLoaderOptions options;
options.untrustedHTTP = true;
CheckFails(request, options);
}
- void CheckFails(const WebURLRequest& request,
- WebURLLoaderOptions options = WebURLLoaderOptions()) {
+ void CheckFails(
+ const WebURLRequest& request,
+ WebAssociatedURLLoaderOptions options = WebAssociatedURLLoaderOptions()) {
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_didFail = false;
@@ -245,16 +224,17 @@ class AssociatedURLLoaderTest : public ::testing::Test,
m_expectedResponse.setMIMEType("text/html");
m_expectedResponse.setHTTPStatusCode(200);
m_expectedResponse.addHTTPHeaderField("Access-Control-Allow-Origin", "*");
- if (exposed)
+ if (exposed) {
m_expectedResponse.addHTTPHeaderField("access-control-expose-headers",
headerNameString);
+ }
m_expectedResponse.addHTTPHeaderField(headerNameString, "foo");
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -273,7 +253,7 @@ class AssociatedURLLoaderTest : public ::testing::Test,
String m_frameFilePath;
FrameTestHelpers::WebViewHelper m_helper;
- std::unique_ptr<WebURLLoader> m_expectedLoader;
+ std::unique_ptr<WebAssociatedURLLoader> m_expectedLoader;
WebURLResponse m_actualResponse;
WebURLResponse m_expectedResponse;
WebURLRequest m_expectedNewRequest;
@@ -289,7 +269,7 @@ class AssociatedURLLoaderTest : public ::testing::Test,
};
// Test a successful same-origin URL load.
-TEST_F(AssociatedURLLoaderTest, SameOriginSuccess) {
+TEST_F(WebAssociatedURLLoaderTest, SameOriginSuccess) {
KURL url = toKURL("http://www.test.com/SameOriginSuccess.html");
WebURLRequest request;
request.setURL(url);
@@ -310,7 +290,7 @@ TEST_F(AssociatedURLLoaderTest, SameOriginSuccess) {
}
// Test that the same-origin restriction is the default.
-TEST_F(AssociatedURLLoaderTest, SameOriginRestriction) {
+TEST_F(WebAssociatedURLLoaderTest, SameOriginRestriction) {
// This is cross-origin since the frame was loaded from www.test.com.
KURL url = toKURL("http://www.other.com/SameOriginRestriction.html");
WebURLRequest request;
@@ -319,7 +299,7 @@ TEST_F(AssociatedURLLoaderTest, SameOriginRestriction) {
}
// Test a successful cross-origin load.
-TEST_F(AssociatedURLLoaderTest, CrossOriginSuccess) {
+TEST_F(WebAssociatedURLLoaderTest, CrossOriginSuccess) {
// This is cross-origin since the frame was loaded from www.test.com.
KURL url = toKURL("http://www.other.com/CrossOriginSuccess");
WebURLRequest request;
@@ -334,9 +314,9 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginSuccess) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyAllow;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyAllow;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -347,7 +327,7 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginSuccess) {
}
// Test a successful cross-origin load using CORS.
-TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlSuccess) {
+TEST_F(WebAssociatedURLLoaderTest, CrossOriginWithAccessControlSuccess) {
// This is cross-origin since the frame was loaded from www.test.com.
KURL url =
toKURL("http://www.other.com/CrossOriginWithAccessControlSuccess.html");
@@ -361,9 +341,9 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlSuccess) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -374,7 +354,7 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlSuccess) {
}
// Test an unsuccessful cross-origin load using CORS.
-TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlFailure) {
+TEST_F(WebAssociatedURLLoaderTest, CrossOriginWithAccessControlFailure) {
// This is cross-origin since the frame was loaded from www.test.com.
KURL url =
toKURL("http://www.other.com/CrossOriginWithAccessControlFailure.html");
@@ -388,13 +368,13 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlFailure) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
// Send credentials. This will cause the CORS checks to fail, because
// credentials can't be sent to a server which returns the header
// "access-control-allow-origin" with "*" as its value.
options.allowCredentials = true;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -408,7 +388,7 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginWithAccessControlFailure) {
}
// Test an unsuccessful cross-origin load using CORS.
-TEST_F(AssociatedURLLoaderTest,
+TEST_F(WebAssociatedURLLoaderTest,
CrossOriginWithAccessControlFailureBadStatusCode) {
// This is cross-origin since the frame was loaded from www.test.com.
KURL url =
@@ -423,9 +403,9 @@ TEST_F(AssociatedURLLoaderTest,
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -439,7 +419,7 @@ TEST_F(AssociatedURLLoaderTest,
}
// Test a same-origin URL redirect and load.
-TEST_F(AssociatedURLLoaderTest, RedirectSuccess) {
+TEST_F(WebAssociatedURLLoaderTest, RedirectSuccess) {
KURL url = toKURL("http://www.test.com/RedirectSuccess.html");
char redirect[] = "http://www.test.com/RedirectSuccess2.html"; // Same-origin
KURL redirectURL = toKURL(redirect);
@@ -474,7 +454,7 @@ TEST_F(AssociatedURLLoaderTest, RedirectSuccess) {
}
// Test a cross-origin URL redirect without Access Control set.
-TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginFailure) {
+TEST_F(WebAssociatedURLLoaderTest, RedirectCrossOriginFailure) {
KURL url = toKURL("http://www.test.com/RedirectCrossOriginFailure.html");
char redirect[] =
"http://www.other.com/RedirectCrossOriginFailure.html"; // Cross-origin
@@ -511,7 +491,8 @@ TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginFailure) {
}
// Test that a cross origin redirect response without CORS headers fails.
-TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlFailure) {
+TEST_F(WebAssociatedURLLoaderTest,
+ RedirectCrossOriginWithAccessControlFailure) {
KURL url = toKURL(
"http://www.test.com/RedirectCrossOriginWithAccessControlFailure.html");
char redirect[] =
@@ -538,9 +519,9 @@ TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlFailure) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
redirectURL, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -555,7 +536,8 @@ TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlFailure) {
// Test that a cross origin redirect response with CORS headers that allow the
// requesting origin succeeds.
-TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlSuccess) {
+TEST_F(WebAssociatedURLLoaderTest,
+ RedirectCrossOriginWithAccessControlSuccess) {
KURL url = toKURL(
"http://www.test.com/RedirectCrossOriginWithAccessControlSuccess.html");
char redirect[] =
@@ -590,9 +572,9 @@ TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlSuccess) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
redirectURL, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
@@ -605,7 +587,7 @@ TEST_F(AssociatedURLLoaderTest, RedirectCrossOriginWithAccessControlSuccess) {
}
// Test that untrusted loads can't use a forbidden method.
-TEST_F(AssociatedURLLoaderTest, UntrustedCheckMethods) {
+TEST_F(WebAssociatedURLLoaderTest, UntrustedCheckMethods) {
// Check non-token method fails.
CheckMethodFails("GET()");
CheckMethodFails("POST\x0d\x0ax-csrf-token:\x20test1234");
@@ -624,7 +606,7 @@ TEST_F(AssociatedURLLoaderTest, UntrustedCheckMethods) {
#endif
// Test that untrusted loads can't use a forbidden header field.
-TEST_F(AssociatedURLLoaderTest, MAYBE_UntrustedCheckHeaders) {
+TEST_F(WebAssociatedURLLoaderTest, MAYBE_UntrustedCheckHeaders) {
// Check non-token header fails.
CheckHeaderFails("foo()");
@@ -663,7 +645,7 @@ TEST_F(AssociatedURLLoaderTest, MAYBE_UntrustedCheckHeaders) {
}
// Test that the loader filters response headers according to the CORS standard.
-TEST_F(AssociatedURLLoaderTest, CrossOriginHeaderWhitelisting) {
+TEST_F(WebAssociatedURLLoaderTest, CrossOriginHeaderWhitelisting) {
// Test that whitelisted headers are returned without exposing them.
EXPECT_TRUE(CheckAccessControlHeaders("cache-control", false));
EXPECT_TRUE(CheckAccessControlHeaders("content-language", false));
@@ -688,7 +670,7 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginHeaderWhitelisting) {
// Test that the loader can allow non-whitelisted response headers for trusted
// CORS loads.
-TEST_F(AssociatedURLLoaderTest, CrossOriginHeaderAllowResponseHeaders) {
+TEST_F(WebAssociatedURLLoaderTest, CrossOriginHeaderAllowResponseHeaders) {
WebURLRequest request;
KURL url =
toKURL("http://www.other.com/CrossOriginHeaderAllowResponseHeaders.html");
@@ -703,11 +685,11 @@ TEST_F(AssociatedURLLoaderTest, CrossOriginHeaderAllowResponseHeaders) {
Platform::current()->getURLLoaderMockFactory()->registerURL(
url, m_expectedResponse, m_frameFilePath);
- WebURLLoaderOptions options;
+ WebAssociatedURLLoaderOptions options;
options.exposeAllResponseHeaders =
true; // This turns off response whitelisting.
options.crossOriginRequestPolicy =
- WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
+ WebAssociatedURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
m_expectedLoader = createAssociatedURLLoader(options);
EXPECT_TRUE(m_expectedLoader);
m_expectedLoader->loadAsynchronously(request, this);
« no previous file with comments | « third_party/WebKit/Source/web/WebAssociatedURLLoaderImpl.cpp ('k') | third_party/WebKit/Source/web/WebLocalFrameImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698