Chromium Code Reviews| Index: content/browser/service_worker/service_worker_browsertest.cc |
| diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc |
| index 0ae1341d7eb69bc50142a08bfcef1075f8f1e835..7791284ea55941cc1e83cadab14338763402e084 100644 |
| --- a/content/browser/service_worker/service_worker_browsertest.cc |
| +++ b/content/browser/service_worker/service_worker_browsertest.cc |
| @@ -25,6 +25,7 @@ |
| #include "content/public/browser/storage_partition.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/content_switches.h" |
| +#include "content/public/test/browser_test_utils.h" |
| #include "content/public/test/content_browser_test.h" |
| #include "content/public/test/content_browser_test_utils.h" |
| #include "content/shell/browser/shell.h" |
| @@ -699,6 +700,56 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, DISABLED_Reload) { |
| } |
| } |
| +static void CountScriptResources( |
| + ServiceWorkerContextWrapper* wrapper, |
| + const GURL& scope, |
| + int* num_resource_out) { |
| + *num_resource_out = -1; |
|
dominicc (has gone to gerrit)
2014/08/04 01:27:10
I think you want a plural instead of "resource"?
michaeln
2014/08/08 02:32:37
Done.
|
| + |
| + std::vector<ServiceWorkerRegistrationInfo> infos = |
|
dominicc (has gone to gerrit)
2014/08/04 01:27:09
Maybe "registrations" reads more easily than "info
michaeln
2014/08/08 02:32:37
there is a good convention for calling structs lik
dominicc (has gone to gerrit)
2014/08/08 05:23:38
Acknowledged.
|
| + wrapper->context()->GetAllLiveRegistrationInfo(); |
| + if (infos.empty()) |
| + return; |
| + |
| + int version_id; |
| + size_t index = infos.size(); |
| + if (!infos[index].installing_version.is_null) |
|
dominicc (has gone to gerrit)
2014/08/04 01:27:09
Don't vectors index from 0?
michaeln
2014/08/08 02:32:37
I googled it, yes they do.
dominicc (has gone to gerrit)
2014/08/08 05:23:38
So isn't infos[infos.size()] out of bounds?
|
| + version_id = infos[index].installing_version.version_id; |
| + else if (!infos[index].waiting_version.is_null) |
| + version_id = infos[1].waiting_version.version_id; |
| + else if (!infos[index].active_version.is_null) |
| + version_id = infos[index].active_version.version_id; |
| + else |
| + return; |
| + |
| + ServiceWorkerVersion* version = |
| + wrapper->context()->GetLiveVersion(version_id); |
| + *num_resource_out = static_cast<int>(version->script_cache_map()->size()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, ImportsBustMemcache) { |
| + const std::string kScopeUrl = "/service_worker/imports_bust_memcache_scope/*"; |
|
dominicc (has gone to gerrit)
2014/08/04 01:27:10
I think a change has landed that updates the handl
michaeln
2014/08/08 02:32:37
Done.
|
| + const std::string kPageUrl = "/service_worker/imports_bust_memcache.html"; |
| + const base::string16 kOKTitle(base::ASCIIToUTF16("OK")); |
| + const base::string16 kFailTitle(base::ASCIIToUTF16("FAIL")); |
| + |
| + TitleWatcher title_watcher(shell()->web_contents(), kOKTitle); |
| + title_watcher.AlsoWaitForTitle(kFailTitle); |
| + NavigateToURL(shell(), embedded_test_server()->GetURL(kPageUrl)); |
| + base::string16 title = title_watcher.WaitAndGetTitle(); |
| + EXPECT_EQ(kOKTitle, title); |
| + |
| + // Verify the number of resources in the implicit script cache is correct. |
| + const size_t kExpectedNumResources = 2u; |
| + int num_resources = 0; |
| + RunOnIOThread( |
| + base::Bind(&CountScriptResources, |
| + base::Unretained(wrapper()), |
| + embedded_test_server()->GetURL(kScopeUrl), |
| + &num_resources)); |
| + EXPECT_EQ(kExpectedNumResources, num_resources); |
| +} |
| + |
| class ServiceWorkerBlackBoxBrowserTest : public ServiceWorkerBrowserTest { |
| public: |
| typedef ServiceWorkerBlackBoxBrowserTest self; |