1// Copyright (c) 2012 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/common/extensions/manifest_tests/chrome_manifest_test.h"
6#include "extensions/common/extension.h"
7#include "extensions/common/manifest_constants.h"
8#include "extensions/common/manifest_handlers/offline_enabled_info.h"
9#include "testing/gtest/include/gtest/gtest.h"
10
11namespace extensions {
12
13namespace errors = manifest_errors;
14
15class ExtensionManifestOfflineEnabledTest : public ChromeManifestTest {
16};
17
18TEST_F(ExtensionManifestOfflineEnabledTest, OfflineEnabled) {
19  LoadAndExpectError("offline_enabled_invalid.json",
20                     errors::kInvalidOfflineEnabled);
21  scoped_refptr<Extension> extension_0(
22      LoadAndExpectSuccess("offline_enabled_extension.json"));
23  EXPECT_TRUE(OfflineEnabledInfo::IsOfflineEnabled(extension_0.get()));
24  scoped_refptr<Extension> extension_1(
25      LoadAndExpectSuccess("offline_enabled_packaged_app.json"));
26  EXPECT_TRUE(OfflineEnabledInfo::IsOfflineEnabled(extension_1.get()));
27  scoped_refptr<Extension> extension_2(
28      LoadAndExpectSuccess("offline_disabled_packaged_app.json"));
29  EXPECT_FALSE(OfflineEnabledInfo::IsOfflineEnabled(extension_2.get()));
30  scoped_refptr<Extension> extension_3(
31      LoadAndExpectSuccess("offline_default_packaged_app.json"));
32  EXPECT_FALSE(OfflineEnabledInfo::IsOfflineEnabled(extension_3.get()));
33  scoped_refptr<Extension> extension_4(
34      LoadAndExpectSuccess("offline_enabled_hosted_app.json"));
35  EXPECT_TRUE(OfflineEnabledInfo::IsOfflineEnabled(extension_4.get()));
36  scoped_refptr<Extension> extension_5(
37      LoadAndExpectSuccess("offline_default_platform_app.json"));
38  EXPECT_TRUE(OfflineEnabledInfo::IsOfflineEnabled(extension_5.get()));
39  scoped_refptr<Extension> extension_6(
40      LoadAndExpectSuccess("offline_default_platform_app_with_webview.json"));
41  EXPECT_FALSE(OfflineEnabledInfo::IsOfflineEnabled(extension_6.get()));
42}
43
44}  // namespace extensions
45