// 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.
#include "chrome/browser/notifications/notifications_prefs_cache.h"
#include "base/message_loop.h"
#include "content/browser/browser_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebNotificationPresenter.h"
TEST(NotificationsPrefsCacheTest, CanCreate) {
scoped_refptr<NotificationsPrefsCache> cache(new NotificationsPrefsCache());
std::vector<GURL> allowed_origins;
allowed_origins.push_back(GURL("http://allowed.com"));
std::vector<GURL> denied_origins;
denied_origins.push_back(GURL("http://denied.com"));
{
MessageLoop loop;
BrowserThread ui_thread(BrowserThread::UI, &loop);
cache->SetCacheAllowedOrigins(allowed_origins);
cache->SetCacheDeniedOrigins(denied_origins);
cache->SetCacheDefaultContentSetting(CONTENT_SETTING_DEFAULT);
}
cache->set_is_initialized(true);
{
MessageLoop loop;
BrowserThread io_thread(BrowserThread::IO, &loop);
cache->CacheAllowedOrigin(GURL("http://allowed2.com"));
cache->CacheDeniedOrigin(GURL("http://denied2.com"));
EXPECT_EQ(cache->HasPermission(GURL("http://allowed.com")),
WebKit::WebNotificationPresenter::PermissionAllowed);
EXPECT_EQ(cache->HasPermission(GURL("http://allowed2.com")),
WebKit::WebNotificationPresenter::PermissionAllowed);
EXPECT_EQ(cache->HasPermission(GURL("http://denied.com")),
WebKit::WebNotificationPresenter::PermissionDenied);
EXPECT_EQ(cache->HasPermission(GURL("http://denied2.com")),
WebKit::WebNotificationPresenter::PermissionDenied);
EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")),
WebKit::WebNotificationPresenter::PermissionNotAllowed);
cache->SetCacheDefaultContentSetting(CONTENT_SETTING_ASK);
EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")),
WebKit::WebNotificationPresenter::PermissionNotAllowed);
cache->SetCacheDefaultContentSetting(CONTENT_SETTING_ALLOW);
EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")),
WebKit::WebNotificationPresenter::PermissionAllowed);
cache->SetCacheDefaultContentSetting(CONTENT_SETTING_BLOCK);
EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")),
WebKit::WebNotificationPresenter::PermissionDenied);
}
}