Commit 3d792ae9 authored by hiroshige's avatar hiroshige Committed by Commit bot

Remove ClassicPendingScript::CreateForTesting()

This CL uses MockScriptElementBase instead of nullptr to create
ClassicPendingScript, in order to remove
ClassicPendingScript::CreateForTesting() and make |PendingScript::element_|
always non-null when used.

BUG=686281, 694702

Review-Url: https://codereview.chromium.org/2827163003
Cr-Commit-Position: refs/heads/master@{#466902}
parent dcf2424a
......@@ -13,6 +13,7 @@
#include "bindings/core/v8/V8ScriptRunner.h"
#include "core/dom/ClassicPendingScript.h"
#include "core/dom/ClassicScript.h"
#include "core/dom/MockScriptElementBase.h"
#include "core/frame/Settings.h"
#include "platform/heap/Handle.h"
#include "platform/testing/UnitTestHelpers.h"
......@@ -34,11 +35,16 @@ class ScriptStreamingTest : public ::testing::Test {
->LoadingTaskRunner()),
settings_(Settings::Create()),
resource_request_("http://www.streaming-test.com/"),
resource_(ScriptResource::Create(resource_request_, "UTF-8")),
pending_script_(
ClassicPendingScript::CreateForTesting(resource_.Get())) {
resource_(ScriptResource::Create(resource_request_, "UTF-8")) {
resource_->SetStatus(ResourceStatus::kPending);
pending_script_ = ClassicPendingScript::CreateForTesting(resource_.Get());
MockScriptElementBase* element = MockScriptElementBase::Create();
// Basically we are not interested in ScriptElementBase* calls, just making
// the method(s) to return default values.
EXPECT_CALL(*element, IntegrityAttributeValue())
.WillRepeatedly(::testing::Return(String()));
pending_script_ = ClassicPendingScript::Create(element, resource_.Get());
ScriptStreamer::SetSmallScriptThresholdForTesting(0);
}
......
......@@ -27,19 +27,11 @@ ClassicPendingScript* ClassicPendingScript::Create(
return new ClassicPendingScript(element, nullptr, starting_position);
}
ClassicPendingScript* ClassicPendingScript::CreateForTesting(
ScriptResource* resource) {
return new ClassicPendingScript(nullptr, resource, TextPosition(), true);
}
ClassicPendingScript::ClassicPendingScript(
ScriptElementBase* element,
ScriptResource* resource,
const TextPosition& starting_position,
bool is_for_testing)
: PendingScript(element, starting_position),
integrity_failure_(false),
is_for_testing_(is_for_testing) {
const TextPosition& starting_position)
: PendingScript(element, starting_position), integrity_failure_(false) {
CheckState();
SetResource(resource);
MemoryCoordinator::Instance().RegisterClient(this);
......@@ -49,7 +41,7 @@ ClassicPendingScript::~ClassicPendingScript() {}
NOINLINE void ClassicPendingScript::CheckState() const {
// TODO(hiroshige): Turn these CHECK()s into DCHECK() before going to beta.
CHECK(is_for_testing_ || GetElement());
CHECK(GetElement());
CHECK(GetResource() || !streamer_);
CHECK(!streamer_ || streamer_->GetResource() == GetResource());
}
......@@ -143,7 +135,7 @@ void ClassicPendingScript::NotifyFinished(Resource* resource) {
//
// See https://crbug.com/500701 for more information.
CheckState();
if (!is_for_testing_ && GetElement()) {
if (GetElement()) {
integrity_failure_ = !CheckScriptResourceIntegrity(resource, GetElement());
}
......
......@@ -39,8 +39,6 @@ class CORE_EXPORT ClassicPendingScript final
// For inline script.
static ClassicPendingScript* Create(ScriptElementBase*, const TextPosition&);
static ClassicPendingScript* CreateForTesting(ScriptResource*);
~ClassicPendingScript() override;
void SetStreamer(ScriptStreamer*);
......@@ -72,8 +70,7 @@ class CORE_EXPORT ClassicPendingScript final
private:
ClassicPendingScript(ScriptElementBase*,
ScriptResource*,
const TextPosition&,
bool is_for_testing = false);
const TextPosition&);
ClassicPendingScript() = delete;
void CheckState() const override;
......@@ -89,10 +86,6 @@ class CORE_EXPORT ClassicPendingScript final
bool integrity_failure_;
Member<ScriptStreamer> streamer_;
// This flag is used to skip non-null checks of |m_element| in unit
// tests, because |m_element| can be null in unit tests.
const bool is_for_testing_;
};
} // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment