summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/gaia/token_service_unittest.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/net/gaia/token_service_unittest.h')
-rw-r--r--chrome/browser/net/gaia/token_service_unittest.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/chrome/browser/net/gaia/token_service_unittest.h b/chrome/browser/net/gaia/token_service_unittest.h
deleted file mode 100644
index ad46138..0000000
--- a/chrome/browser/net/gaia/token_service_unittest.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2010 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.
-//
-// This file defines a unit test harness for the profile's token service.
-
-#ifndef CHROME_BROWSER_NET_GAIA_TOKEN_SERVICE_UNITTEST_H_
-#define CHROME_BROWSER_NET_GAIA_TOKEN_SERVICE_UNITTEST_H_
-#pragma once
-
-#include "chrome/browser/net/gaia/token_service.h"
-#include "chrome/browser/password_manager/encryptor.h"
-#include "chrome/browser/webdata/web_data_service.h"
-#include "chrome/common/net/gaia/gaia_auth_consumer.h"
-#include "chrome/test/signaling_task.h"
-#include "chrome/test/test_notification_tracker.h"
-#include "chrome/test/testing_profile.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-// TestNotificationTracker doesn't do a deep copy on the notification details.
-// We have to in order to read it out, or we have a bad ptr, since the details
-// are a reference on the stack.
-class TokenAvailableTracker : public TestNotificationTracker {
- public:
- const TokenService::TokenAvailableDetails& details() {
- return details_;
- }
-
- private:
- virtual void Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- TestNotificationTracker::Observe(type, source, details);
- if (type == NotificationType::TOKEN_AVAILABLE) {
- Details<const TokenService::TokenAvailableDetails> full = details;
- details_ = *full.ptr();
- }
- }
-
- TokenService::TokenAvailableDetails details_;
-};
-
-class TokenFailedTracker : public TestNotificationTracker {
- public:
- const TokenService::TokenRequestFailedDetails& details() {
- return details_;
- }
-
- private:
- virtual void Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- TestNotificationTracker::Observe(type, source, details);
- if (type == NotificationType::TOKEN_REQUEST_FAILED) {
- Details<const TokenService::TokenRequestFailedDetails> full = details;
- details_ = *full.ptr();
- }
- }
-
- TokenService::TokenRequestFailedDetails details_;
-};
-
-class TokenServiceTestHarness : public testing::Test {
- public:
- TokenServiceTestHarness()
- : ui_thread_(ChromeThread::UI, &message_loop_),
- db_thread_(ChromeThread::DB) {
- }
-
- virtual void SetUp() {
-#if defined(OS_MACOSX)
- Encryptor::UseMockKeychain(true);
-#endif
- credentials_.sid = "sid";
- credentials_.lsid = "lsid";
- credentials_.token = "token";
- credentials_.data = "data";
-
- ASSERT_TRUE(db_thread_.Start());
-
- profile_.reset(new TestingProfile());
- profile_->CreateWebDataService(false);
- WaitForDBLoadCompletion();
-
- success_tracker_.ListenFor(NotificationType::TOKEN_AVAILABLE,
- Source<TokenService>(&service_));
- failure_tracker_.ListenFor(NotificationType::TOKEN_REQUEST_FAILED,
- Source<TokenService>(&service_));
-
- service_.Initialize("test", profile_.get());
-
- URLFetcher::set_factory(NULL);
- }
-
- virtual void TearDown() {
- // You have to destroy the profile before the db_thread_ stops.
- if (profile_.get()) {
- profile_.reset(NULL);
- }
-
- db_thread_.Stop();
- MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask);
- MessageLoop::current()->Run();
- }
-
- void WaitForDBLoadCompletion() {
- // The WebDB does all work on the DB thread. This will add an event
- // to the end of the DB thread, so when we reach this task, all DB
- // operations should be complete.
- WaitableEvent done(false, false);
- ChromeThread::PostTask(
- ChromeThread::DB, FROM_HERE, new SignalingTask(&done));
- done.Wait();
-
- // Notifications should be returned from the DB thread onto the UI thread.
- message_loop_.RunAllPending();
- }
-
- MessageLoopForUI message_loop_;
- ChromeThread ui_thread_; // Mostly so DCHECKS pass.
- ChromeThread db_thread_; // WDS on here
-
- TokenService service_;
- TokenAvailableTracker success_tracker_;
- TokenFailedTracker failure_tracker_;
- GaiaAuthConsumer::ClientLoginResult credentials_;
- scoped_ptr<TestingProfile> profile_;
-};
-
-#endif // CHROME_BROWSER_NET_GAIA_TOKEN_SERVICE_UNITTEST_H_