1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/notifications/notifications_prefs_cache.h" 6 7 #include "base/message_loop.h" 8 #include "content/browser/browser_thread.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNotificationPresenter.h" 11 12 TEST(NotificationsPrefsCacheTest, CanCreate) { 13 scoped_refptr<NotificationsPrefsCache> cache(new NotificationsPrefsCache()); 14 std::vector<GURL> allowed_origins; 15 allowed_origins.push_back(GURL("http://allowed.com")); 16 std::vector<GURL> denied_origins; 17 denied_origins.push_back(GURL("http://denied.com")); 18 19 { 20 MessageLoop loop; 21 BrowserThread ui_thread(BrowserThread::UI, &loop); 22 23 cache->SetCacheAllowedOrigins(allowed_origins); 24 cache->SetCacheDeniedOrigins(denied_origins); 25 cache->SetCacheDefaultContentSetting(CONTENT_SETTING_DEFAULT); 26 } 27 28 cache->set_is_initialized(true); 29 30 { 31 MessageLoop loop; 32 BrowserThread io_thread(BrowserThread::IO, &loop); 33 34 cache->CacheAllowedOrigin(GURL("http://allowed2.com")); 35 cache->CacheDeniedOrigin(GURL("http://denied2.com")); 36 37 EXPECT_EQ(cache->HasPermission(GURL("http://allowed.com")), 38 WebKit::WebNotificationPresenter::PermissionAllowed); 39 EXPECT_EQ(cache->HasPermission(GURL("http://allowed2.com")), 40 WebKit::WebNotificationPresenter::PermissionAllowed); 41 42 EXPECT_EQ(cache->HasPermission(GURL("http://denied.com")), 43 WebKit::WebNotificationPresenter::PermissionDenied); 44 EXPECT_EQ(cache->HasPermission(GURL("http://denied2.com")), 45 WebKit::WebNotificationPresenter::PermissionDenied); 46 47 EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")), 48 WebKit::WebNotificationPresenter::PermissionNotAllowed); 49 50 cache->SetCacheDefaultContentSetting(CONTENT_SETTING_ASK); 51 EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")), 52 WebKit::WebNotificationPresenter::PermissionNotAllowed); 53 54 cache->SetCacheDefaultContentSetting(CONTENT_SETTING_ALLOW); 55 EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")), 56 WebKit::WebNotificationPresenter::PermissionAllowed); 57 58 cache->SetCacheDefaultContentSetting(CONTENT_SETTING_BLOCK); 59 EXPECT_EQ(cache->HasPermission(GURL("http://unkown.com")), 60 WebKit::WebNotificationPresenter::PermissionDenied); 61 } 62 } 63 64