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
12TEST(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