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

Unified Diff: third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp

Issue 1840193006: Move token gathering into parser Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add file lost with git reset Created 4 years, 9 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/core/origin_trials/DocumentOriginTrialContextTest.cpp
diff --git a/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp b/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
index 1c6b231da903fda202aeab81209f183c1ec034b3..f647371648f66b6ed908c2a955a4c6e030bb332f 100644
--- a/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
+++ b/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
@@ -11,6 +11,7 @@
#include "core/html/HTMLDocument.h"
#include "core/html/HTMLHeadElement.h"
#include "core/html/HTMLMetaElement.h"
+#include "core/origin_trials/OriginTrials.h"
#include "core/testing/DummyPageHolder.h"
#include "platform/weborigin/KURL.h"
#include "platform/weborigin/SecurityOrigin.h"
@@ -45,17 +46,6 @@ protected:
m_pageHolder.clear();
}
- void SetUp() override
- {
- setInnerHTML(
- "<html>"
- "<head>"
- "</head>"
- "<body>"
- "</body>"
- "</html>");
- }
-
Document& document() { return m_pageHolder->document(); }
void setPageOrigin(const String& origin)
@@ -68,10 +58,11 @@ protected:
void setInnerHTML(const char* htmlContent)
{
document().documentElement()->setInnerHTML(String::fromUTF8(htmlContent), ASSERT_NO_EXCEPTION);
+ OriginTrials::from(&document())->resetOriginTrialsForTesting();
document().view()->updateAllLifecyclePhases();
}
- void addTrialToken(const AtomicString& token)
+ void addXSSToken(const AtomicString& token)
{
HTMLElement* head = document().head();
ASSERT_TRUE(head);
@@ -82,6 +73,34 @@ protected:
head->appendChild(meta.release());
}
+ void addPreScriptToken(const AtomicString& token)
+ {
+ m_preScriptTokens.append(token);
+ }
+
+ void addPostScriptToken(const AtomicString& token)
+ {
+ m_postScriptTokens.append(token);
+ }
+
+ void addPostHeadToken(const AtomicString& token)
+ {
+ m_postHeadTokens.append(token);
+ }
+
+ void resetDocument()
+ {
+ String preScriptHTML, postScriptHTML, postHeadHTML;
+ for (const String& token : m_preScriptTokens)
+ preScriptHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
+ for (const String& token : m_postScriptTokens)
+ postScriptHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
+ for (const String& token : m_postHeadTokens)
+ postHeadHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
+ String documentHTML = String::format("<html><head>%s<script></script>%s</head><body>%s</body></html>", preScriptHTML.utf8().data(), postScriptHTML.utf8().data(), postHeadHTML.utf8().data());
+ setInnerHTML(documentHTML.utf8().data());
+ }
+
Vector<String> getTokens()
{
return document().createOriginTrialContext()->getTokens();
@@ -90,18 +109,35 @@ protected:
private:
OwnPtr<DummyPageHolder> m_pageHolder;
const bool m_frameworkWasEnabled;
+ Vector<String> m_preScriptTokens;
+ Vector<String> m_postScriptTokens;
+ Vector<String> m_postHeadTokens;
};
TEST_F(DocumentOriginTrialContextTest, DetectsZeroTokens)
{
String errorMessage;
+ setInnerHTML(
+ "<html>"
+ "<head>"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>");
Vector<String> tokens = getTokens();
EXPECT_EQ(0UL, tokens.size());
}
TEST_F(DocumentOriginTrialContextTest, ExtractsSingleToken)
{
- addTrialToken(kGoodTrialToken);
+ setInnerHTML(String::format(
+ "<html>"
+ "<head>"
+ "<meta http-equiv=\"%s\" content=\"%s\">"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>", OriginTrialContext::kTrialHeaderName, kGoodTrialToken).utf8().data());
Vector<String> tokens = getTokens();
EXPECT_EQ(1UL, tokens.size());
EXPECT_EQ(kGoodTrialToken, tokens[0]);
@@ -109,8 +145,16 @@ TEST_F(DocumentOriginTrialContextTest, ExtractsSingleToken)
TEST_F(DocumentOriginTrialContextTest, ExtractsAllTokens)
{
- addTrialToken(kGoodTrialToken);
- addTrialToken(kAnotherTrialToken);
+ setInnerHTML(String::format(
+ "<html>"
+ "<head>"
+ "<meta http-equiv=\"%s\" content=\"%s\">"
+ "<meta http-equiv=\"%s\" content=\"%s\">"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>", OriginTrialContext::kTrialHeaderName, kGoodTrialToken,
+ OriginTrialContext::kTrialHeaderName, kAnotherTrialToken).utf8().data());
EXPECT_THAT(getTokens(), UnorderedElementsAre(kGoodTrialToken, kAnotherTrialToken));
}

Powered by Google App Engine
This is Rietveld 408576698