Chromium Code Reviews| Index: content/public/test/background_sync_test_util.cc |
| diff --git a/content/public/test/background_sync_test_util.cc b/content/public/test/background_sync_test_util.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..647d61361967b3e1d9511a2fcce317ba9e020b36 |
| --- /dev/null |
| +++ b/content/public/test/background_sync_test_util.cc |
| @@ -0,0 +1,70 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/public/test/background_sync_test_util.h" |
| + |
| +#include "base/run_loop.h" |
| +#include "base/task_runner_util.h" |
| +#include "content/browser/background_sync/background_sync_manager.h" |
| +#include "content/browser/background_sync/background_sync_network_observer.h" |
| +#include "content/browser/background_sync/background_sync_registration_handle.h" |
| +#include "content/public/browser/background_sync_context.h" |
| +#include "content/public/browser/browser_context.h" |
| +#include "content/public/browser/browser_thread.h" |
| +#include "content/public/browser/storage_partition.h" |
| +#include "content/public/browser/web_contents.h" |
| +#include "net/base/network_change_notifier.h" |
| + |
| +using content::BackgroundSyncManager; |
|
Devlin
2015/11/16 18:12:41
Let's just put the anonymous namespace at line 26
lazyboy
2015/11/16 19:30:16
Done.
|
| +using content::BackgroundSyncNetworkObserver; |
| +using content::BrowserContext; |
| +using content::BrowserThread; |
| +using content::StoragePartition; |
| +using content::WebContents; |
| + |
| +namespace { |
| + |
| +void SetOnlineOnIOThread( |
| + const scoped_refptr<content::BackgroundSyncContext>& sync_context, |
| + bool online) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + |
| + BackgroundSyncManager* sync_manager = sync_context->background_sync_manager(); |
| + BackgroundSyncNetworkObserver* network_observer = |
| + sync_manager->GetNetworkObserverForTesting(); |
| + if (online) { |
| + network_observer->NotifyManagerIfNetworkChangedForTesting( |
| + net::NetworkChangeNotifier::CONNECTION_WIFI); |
| + } else { |
| + network_observer->NotifyManagerIfNetworkChangedForTesting( |
| + net::NetworkChangeNotifier::CONNECTION_NONE); |
| + } |
| +} |
| + |
| +StoragePartition* GetStoragePartition(WebContents* web_contents) { |
| + return BrowserContext::GetStoragePartition(web_contents->GetBrowserContext(), |
| + web_contents->GetSiteInstance()); |
| +} |
| + |
| +} // namespace |
| + |
| +namespace content { |
| + |
| +// static. |
| +void BackgroundSyncTestUtil::SetIgnoreNetworkChangeNotifier(bool ignore) { |
| + BackgroundSyncNetworkObserver::SetIgnoreNetworkChangeNotifierForTests(ignore); |
| +} |
| + |
| +// static. |
| +void BackgroundSyncTestUtil::SetOnline(WebContents* web_contents, bool online) { |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&SetOnlineOnIOThread, |
| + base::Unretained(GetStoragePartition(web_contents) |
| + ->GetBackgroundSyncContext()), |
| + online)); |
| + base::RunLoop().RunUntilIdle(); |
| +} |
| + |
| +} // namespace content |