mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update to Chromium revision 5fdc0fab (#520840)
- Windows now builds with clang by default.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "include/base/cef_bind.h"
|
||||
#include "include/cef_file_util.h"
|
||||
#include "include/cef_waitable_event.h"
|
||||
#include "include/wrapper/cef_closure_task.h"
|
||||
#include "include/wrapper/cef_resource_manager.h"
|
||||
#include "include/wrapper/cef_scoped_temp_dir.h"
|
||||
@@ -53,10 +54,7 @@ const char kNotHandled[] = "NotHandled";
|
||||
class ResourceManagerTestHandler : public RoutingTestHandler {
|
||||
public:
|
||||
struct State {
|
||||
State()
|
||||
: manager_(new CefResourceManager()),
|
||||
expected_message_ct_(0),
|
||||
timeout_(0) {}
|
||||
State() : manager_(new CefResourceManager()), expected_message_ct_(0) {}
|
||||
|
||||
CefRefPtr<CefResourceManager> manager_;
|
||||
|
||||
@@ -69,10 +67,6 @@ class ResourceManagerTestHandler : public RoutingTestHandler {
|
||||
// If non-zero the test will not complete until the expected number of
|
||||
// messages have been received.
|
||||
size_t expected_message_ct_;
|
||||
|
||||
// If non-zero the test will be timed out after the specified amount of
|
||||
// time, and the timeout will not be considered an error.
|
||||
int timeout_;
|
||||
};
|
||||
|
||||
explicit ResourceManagerTestHandler(State* state)
|
||||
@@ -87,10 +81,7 @@ class ResourceManagerTestHandler : public RoutingTestHandler {
|
||||
// Create the browser.
|
||||
CreateBrowser(GetNextURL());
|
||||
|
||||
if (state_->timeout_ != 0)
|
||||
SetTestTimeout(state_->timeout_, false);
|
||||
else
|
||||
SetTestTimeout();
|
||||
SetTestTimeout();
|
||||
}
|
||||
|
||||
cef_return_value_t OnBeforeResourceLoad(
|
||||
@@ -132,6 +123,13 @@ class ResourceManagerTestHandler : public RoutingTestHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Wait a bit before destroying the test. Used with ProviderDoNothing.
|
||||
void DelayedDestroyTest() {
|
||||
CefPostDelayedTask(
|
||||
TID_UI, base::Bind(&ResourceManagerTestHandler::DestroyTest, this),
|
||||
100);
|
||||
}
|
||||
|
||||
private:
|
||||
void Continue(CefRefPtr<CefBrowser> browser) {
|
||||
if (state_->expected_message_ct_ == 0) {
|
||||
@@ -190,6 +188,7 @@ class TestProvider : public CefResourceManager::Provider {
|
||||
TrackCallback got_on_request_;
|
||||
TrackCallback got_on_request_canceled_;
|
||||
TrackCallback got_destruct_;
|
||||
base::Closure destruct_callback_;
|
||||
std::string request_url_;
|
||||
};
|
||||
|
||||
@@ -198,6 +197,8 @@ class TestProvider : public CefResourceManager::Provider {
|
||||
~TestProvider() {
|
||||
CEF_REQUIRE_IO_THREAD();
|
||||
state_->got_destruct_.yes();
|
||||
if (!state_->destruct_callback_.is_null())
|
||||
state_->destruct_callback_.Run();
|
||||
}
|
||||
|
||||
bool OnRequest(scoped_refptr<CefResourceManager::Request> request) override {
|
||||
@@ -227,6 +228,32 @@ class TestProvider : public CefResourceManager::Provider {
|
||||
DISALLOW_COPY_AND_ASSIGN(TestProvider);
|
||||
};
|
||||
|
||||
// Helper that blocks on destruction of 1 or more TestProviders.
|
||||
class ProviderDestructHelper {
|
||||
public:
|
||||
explicit ProviderDestructHelper(int expected_count) : current_count_(0) {
|
||||
event_ = CefWaitableEvent::CreateWaitableEvent(true, false);
|
||||
callback_ =
|
||||
base::Bind(&DestructCallback, expected_count, ¤t_count_, event_);
|
||||
}
|
||||
|
||||
const base::Closure& callback() const { return callback_; }
|
||||
|
||||
void Wait() { event_->Wait(); }
|
||||
|
||||
private:
|
||||
static void DestructCallback(int expected_count,
|
||||
int* current_count,
|
||||
CefRefPtr<CefWaitableEvent> event) {
|
||||
if (++(*current_count) == expected_count)
|
||||
event->Signal();
|
||||
}
|
||||
|
||||
int current_count_;
|
||||
CefRefPtr<CefWaitableEvent> event_;
|
||||
base::Closure callback_;
|
||||
};
|
||||
|
||||
// Test that that the URL retrieved via Request::url() is parsed as expected.
|
||||
// Fragment or query components in any order should be removed.
|
||||
void TestUrlParsing(const char* kUrl) {
|
||||
@@ -237,6 +264,9 @@ void TestUrlParsing(const char* kUrl) {
|
||||
|
||||
TestProvider::State provider_state;
|
||||
|
||||
ProviderDestructHelper destruct_helper(1);
|
||||
provider_state.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(new TestProvider(&provider_state), 0,
|
||||
std::string());
|
||||
|
||||
@@ -249,7 +279,7 @@ void TestUrlParsing(const char* kUrl) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// The provider is called.
|
||||
EXPECT_TRUE(provider_state.got_on_request_);
|
||||
@@ -305,6 +335,15 @@ class SimpleTestProvider : public TestProvider {
|
||||
SimpleTestProvider(State* state, Mode mode, CefResourceManager* manager)
|
||||
: TestProvider(state), mode_(mode), manager_(manager) {}
|
||||
|
||||
SimpleTestProvider(State* state,
|
||||
Mode mode,
|
||||
CefResourceManager* manager,
|
||||
base::Closure do_nothing_callback)
|
||||
: TestProvider(state),
|
||||
mode_(mode),
|
||||
manager_(manager),
|
||||
do_nothing_callback_(do_nothing_callback) {}
|
||||
|
||||
bool OnRequest(scoped_refptr<CefResourceManager::Request> request) override {
|
||||
TestProvider::OnRequest(request);
|
||||
|
||||
@@ -318,6 +357,11 @@ class SimpleTestProvider : public TestProvider {
|
||||
manager_->RemoveProviders(kProviderId);
|
||||
else if (mode_ == REMOVE_ALL)
|
||||
manager_->RemoveAllProviders();
|
||||
else if (mode_ == DO_NOTHING) {
|
||||
EXPECT_FALSE(do_nothing_callback_.is_null());
|
||||
do_nothing_callback_.Run();
|
||||
do_nothing_callback_.Reset();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -325,6 +369,7 @@ class SimpleTestProvider : public TestProvider {
|
||||
private:
|
||||
Mode mode_;
|
||||
CefResourceManager* manager_; // Weak reference.
|
||||
base::Closure do_nothing_callback_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(SimpleTestProvider);
|
||||
};
|
||||
@@ -341,6 +386,10 @@ TEST(ResourceManagerTest, ProviderNotHandled) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::NOT_HANDLED,
|
||||
NULL),
|
||||
@@ -359,7 +408,7 @@ TEST(ResourceManagerTest, ProviderNotHandled) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -384,6 +433,10 @@ TEST(ResourceManagerTest, ProviderContinue) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::CONTINUE,
|
||||
NULL),
|
||||
@@ -402,7 +455,7 @@ TEST(ResourceManagerTest, ProviderContinue) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -427,6 +480,10 @@ TEST(ResourceManagerTest, ProviderStop) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::STOP, NULL),
|
||||
0, std::string());
|
||||
@@ -444,7 +501,7 @@ TEST(ResourceManagerTest, ProviderStop) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// 1st provider is called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -472,6 +529,11 @@ TEST(ResourceManagerTest, ProviderRemove) {
|
||||
TestProvider::State provider_state2;
|
||||
TestProvider::State provider_state3;
|
||||
|
||||
ProviderDestructHelper destruct_helper(3);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::REMOVE,
|
||||
state.manager_.get()),
|
||||
@@ -494,7 +556,7 @@ TEST(ResourceManagerTest, ProviderRemove) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// 1st provider is called and canceled.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -527,6 +589,11 @@ TEST(ResourceManagerTest, ProviderRemoveAll) {
|
||||
TestProvider::State provider_state2;
|
||||
TestProvider::State provider_state3;
|
||||
|
||||
ProviderDestructHelper destruct_helper(3);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::REMOVE_ALL,
|
||||
state.manager_.get()),
|
||||
@@ -549,7 +616,7 @@ TEST(ResourceManagerTest, ProviderRemoveAll) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// 1st provider is called and canceled.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -577,23 +644,27 @@ TEST(ResourceManagerTest, ProviderDoNothing) {
|
||||
ResourceManagerTestHandler::State state;
|
||||
state.urls_.push_back(kUrl);
|
||||
|
||||
// The provider does nothing so intentionally time out the test.
|
||||
state.timeout_ = 500;
|
||||
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
CefRefPtr<ResourceManagerTestHandler> handler =
|
||||
new ResourceManagerTestHandler(&state);
|
||||
|
||||
// DelayedDestroyTest will be executed from SimpleTestHandler::OnRequest.
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state1, SimpleTestProvider::DO_NOTHING,
|
||||
NULL),
|
||||
new SimpleTestProvider(
|
||||
&provider_state1, SimpleTestProvider::DO_NOTHING, NULL,
|
||||
base::Bind(&ResourceManagerTestHandler::DelayedDestroyTest, handler)),
|
||||
0, std::string());
|
||||
state.manager_->AddProvider(
|
||||
new SimpleTestProvider(&provider_state2, SimpleTestProvider::DO_NOTHING,
|
||||
NULL),
|
||||
0, std::string());
|
||||
|
||||
CefRefPtr<ResourceManagerTestHandler> handler =
|
||||
new ResourceManagerTestHandler(&state);
|
||||
handler->ExecuteTest();
|
||||
|
||||
// Destroy the resource manager before the handler so that pending requests
|
||||
@@ -602,7 +673,7 @@ TEST(ResourceManagerTest, ProviderDoNothing) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
ReleaseAndWaitForDestructor(handler);
|
||||
|
||||
@@ -791,11 +862,17 @@ namespace {
|
||||
// Content provider that only handles a single request.
|
||||
class OneShotProvider : public CefResourceManager::Provider {
|
||||
public:
|
||||
explicit OneShotProvider(const std::string& content)
|
||||
: done_(false), content_(content) {
|
||||
OneShotProvider(const std::string& content,
|
||||
const base::Closure& destruct_callback)
|
||||
: done_(false), content_(content), destruct_callback_(destruct_callback) {
|
||||
EXPECT_FALSE(content.empty());
|
||||
}
|
||||
|
||||
~OneShotProvider() {
|
||||
CEF_REQUIRE_IO_THREAD();
|
||||
destruct_callback_.Run();
|
||||
}
|
||||
|
||||
bool OnRequest(scoped_refptr<CefResourceManager::Request> request) override {
|
||||
CEF_REQUIRE_IO_THREAD();
|
||||
|
||||
@@ -817,6 +894,7 @@ class OneShotProvider : public CefResourceManager::Provider {
|
||||
private:
|
||||
bool done_;
|
||||
std::string content_;
|
||||
base::Closure destruct_callback_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(OneShotProvider);
|
||||
};
|
||||
@@ -845,17 +923,25 @@ TEST(ResourceManagerTest, ProviderOrder) {
|
||||
state.urls_.push_back(kUrl4);
|
||||
state.urls_.push_back(kUrl5);
|
||||
|
||||
ProviderDestructHelper destruct_helper(4);
|
||||
|
||||
// Resulting order should be sequential; success1 .. success4.
|
||||
state.manager_->AddProvider(
|
||||
new OneShotProvider(CreateContents(success2_message)), 0, std::string());
|
||||
new OneShotProvider(CreateContents(success2_message),
|
||||
destruct_helper.callback()),
|
||||
0, std::string());
|
||||
state.manager_->AddProvider(
|
||||
new OneShotProvider(CreateContents(success1_message)), -100,
|
||||
std::string());
|
||||
new OneShotProvider(CreateContents(success1_message),
|
||||
destruct_helper.callback()),
|
||||
-100, std::string());
|
||||
state.manager_->AddProvider(
|
||||
new OneShotProvider(CreateContents(success4_message)), 100,
|
||||
std::string());
|
||||
new OneShotProvider(CreateContents(success4_message),
|
||||
destruct_helper.callback()),
|
||||
100, std::string());
|
||||
state.manager_->AddProvider(
|
||||
new OneShotProvider(CreateContents(success3_message)), 0, std::string());
|
||||
new OneShotProvider(CreateContents(success3_message),
|
||||
destruct_helper.callback()),
|
||||
0, std::string());
|
||||
|
||||
CefRefPtr<ResourceManagerTestHandler> handler =
|
||||
new ResourceManagerTestHandler(&state);
|
||||
@@ -866,7 +952,7 @@ TEST(ResourceManagerTest, ProviderOrder) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
EXPECT_EQ(state.messages_.size(), 5U);
|
||||
EXPECT_EQ(success1_message, state.messages_[0]);
|
||||
@@ -1049,6 +1135,12 @@ TEST(ResourceManagerTest, RemoveProviderAfterContinue) {
|
||||
TestProvider::State provider_state3;
|
||||
TestProvider::State provider_state4;
|
||||
|
||||
ProviderDestructHelper destruct_helper(4);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state4.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
const char kIdentifier1[] = "id1";
|
||||
const char kIdentifier2[] = "id2";
|
||||
const char kIdentifier4[] = "id4";
|
||||
@@ -1085,7 +1177,7 @@ TEST(ResourceManagerTest, RemoveProviderAfterContinue) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers except for 3 (which is removed at the same time as 2 and
|
||||
// therefore never executed) should complete.
|
||||
@@ -1138,6 +1230,12 @@ TEST(ResourceManagerTest, RemoveProviderBeforeContinue) {
|
||||
TestProvider::State provider_state3;
|
||||
TestProvider::State provider_state4;
|
||||
|
||||
ProviderDestructHelper destruct_helper(4);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state4.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
const char kIdentifier1[] = "id1";
|
||||
const char kIdentifier2[] = "id2";
|
||||
const char kIdentifier4[] = "id4";
|
||||
@@ -1173,7 +1271,7 @@ TEST(ResourceManagerTest, RemoveProviderBeforeContinue) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// No providers should complete.
|
||||
EXPECT_EQ(state.messages_.size(), 4U);
|
||||
@@ -1225,6 +1323,12 @@ TEST(ResourceManagerTest, RemoveAllProvidersAfterContinue) {
|
||||
TestProvider::State provider_state3;
|
||||
TestProvider::State provider_state4;
|
||||
|
||||
ProviderDestructHelper destruct_helper(4);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state4.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
// Resulting order should be sequential; success1 .. success4.
|
||||
state.manager_->AddProvider(
|
||||
new OneShotRemovalProvider(&provider_state2,
|
||||
@@ -1257,7 +1361,7 @@ TEST(ResourceManagerTest, RemoveAllProvidersAfterContinue) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// Only the 1st provider should complete
|
||||
EXPECT_EQ(state.messages_.size(), 4U);
|
||||
@@ -1307,6 +1411,12 @@ TEST(ResourceManagerTest, RemoveAllProvidersBeforeContinue) {
|
||||
TestProvider::State provider_state3;
|
||||
TestProvider::State provider_state4;
|
||||
|
||||
ProviderDestructHelper destruct_helper(4);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state3.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state4.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
// Resulting order should be sequential; success1 .. success4.
|
||||
state.manager_->AddProvider(
|
||||
new OneShotRemovalProvider(&provider_state2,
|
||||
@@ -1339,7 +1449,7 @@ TEST(ResourceManagerTest, RemoveAllProvidersBeforeContinue) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// No providers should complete.
|
||||
EXPECT_EQ(state.messages_.size(), 4U);
|
||||
@@ -1435,6 +1545,10 @@ TEST(ResourceManagerTest, UrlFilter) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new UrlFilterTestProvider(&provider_state1, kExpectedUrl, kExpectedUrl),
|
||||
0, std::string());
|
||||
@@ -1451,7 +1565,7 @@ TEST(ResourceManagerTest, UrlFilter) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -1482,6 +1596,10 @@ TEST(ResourceManagerTest, UrlFilterWithQuery) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new UrlFilterTestProvider(&provider_state1, kExpectedUrl,
|
||||
kExpectedUrlAfterFilter),
|
||||
@@ -1500,7 +1618,7 @@ TEST(ResourceManagerTest, UrlFilterWithQuery) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -1532,6 +1650,10 @@ TEST(ResourceManagerTest, UrlFilterWithFragment) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new UrlFilterTestProvider(&provider_state1, kExpectedUrl,
|
||||
kExpectedUrlAfterFilter),
|
||||
@@ -1550,7 +1672,7 @@ TEST(ResourceManagerTest, UrlFilterWithFragment) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -1610,6 +1732,10 @@ TEST(ResourceManagerTest, MimeTypeResolver) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new MimeTypeTestProvider(&provider_state1, kExpectedMimeType), 0,
|
||||
std::string());
|
||||
@@ -1626,7 +1752,7 @@ TEST(ResourceManagerTest, MimeTypeResolver) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -1687,6 +1813,10 @@ TEST(ResourceManagerTest, AddProviderAfter) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new AddingTestProvider(&provider_state1, &provider_state2,
|
||||
state.manager_.get(), false),
|
||||
@@ -1701,7 +1831,7 @@ TEST(ResourceManagerTest, AddProviderAfter) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// All providers are called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
@@ -1726,6 +1856,10 @@ TEST(ResourceManagerTest, AddProviderBefore) {
|
||||
TestProvider::State provider_state1;
|
||||
TestProvider::State provider_state2;
|
||||
|
||||
ProviderDestructHelper destruct_helper(2);
|
||||
provider_state1.destruct_callback_ = destruct_helper.callback();
|
||||
provider_state2.destruct_callback_ = destruct_helper.callback();
|
||||
|
||||
state.manager_->AddProvider(
|
||||
new AddingTestProvider(&provider_state1, &provider_state2,
|
||||
state.manager_.get(), true),
|
||||
@@ -1740,7 +1874,7 @@ TEST(ResourceManagerTest, AddProviderBefore) {
|
||||
state.manager_ = NULL;
|
||||
|
||||
// Wait for the manager to be deleted.
|
||||
WaitForIOThread();
|
||||
destruct_helper.Wait();
|
||||
|
||||
// 1st provider is called.
|
||||
EXPECT_TRUE(provider_state1.got_on_request_);
|
||||
|
Reference in New Issue
Block a user