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 "base/memory/scoped_ptr.h" 6#include "base/values.h" 7#include "chrome/common/extensions/manifest_handlers/app_launch_info.h" 8#include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11typedef ExtensionManifestTest ValidAppManifestTest; 12 13TEST_F(ValidAppManifestTest, ValidApp) { 14 scoped_refptr<extensions::Extension> extension( 15 LoadAndExpectSuccess("valid_app.json")); 16 extensions::URLPatternSet expected_patterns; 17 AddPattern(&expected_patterns, "http://www.google.com/mail/*"); 18 AddPattern(&expected_patterns, "http://www.google.com/foobar/*"); 19 EXPECT_EQ(expected_patterns, extension->web_extent()); 20 EXPECT_EQ(extensions::LAUNCH_CONTAINER_TAB, 21 extensions::AppLaunchInfo::GetLaunchContainer(extension.get())); 22 EXPECT_EQ(GURL("http://www.google.com/mail/"), 23 extensions::AppLaunchInfo::GetLaunchWebURL(extension.get())); 24} 25 26TEST_F(ValidAppManifestTest, AllowUnrecognizedPermissions) { 27 std::string error; 28 scoped_ptr<base::DictionaryValue> manifest( 29 LoadManifest("valid_app.json", &error)); 30 base::ListValue* permissions = NULL; 31 ASSERT_TRUE(manifest->GetList("permissions", &permissions)); 32 permissions->Append(new StringValue("not-a-valid-permission")); 33 LoadAndExpectSuccess(Manifest(manifest.get(), "")); 34} 35