| Index: chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d64112700b77f37bb604f7050724a69ce7da5834
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
|
| @@ -0,0 +1,56 @@
|
| +// Copyright (c) 2012 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/extensions/api/declarative_webrequest/webrequest_condition_attribute.h"
|
| +
|
| +#include "base/message_loop.h"
|
| +#include "base/values.h"
|
| +#include "net/url_request/url_request_test_util.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace {
|
| +const char kSchemeConditionName[] = "scheme";
|
| +const char kUnknownConditionName[] = "unknownType";
|
| +} // namespace
|
| +
|
| +namespace extensions {
|
| +
|
| +TEST(WebRequestConditionAttributeTest, CreateConditionAttribute) {
|
| + // Necessary for TestURLRequest.
|
| + MessageLoop message_loop(MessageLoop::TYPE_IO);
|
| +
|
| + std::string error;
|
| + scoped_ptr<WebRequestConditionAttribute> result;
|
| + StringValue http_string_value("http");
|
| + ListValue list_value;
|
| +
|
| + // Test wrong condition name passed.
|
| + error.clear();
|
| + result = WebRequestConditionAttribute::Create(
|
| + kUnknownConditionName, &http_string_value, &error);
|
| + EXPECT_FALSE(error.empty());
|
| + EXPECT_FALSE(result.get());
|
| +
|
| + // Test wrong data type passed
|
| + error.clear();
|
| + result = WebRequestConditionAttribute::Create(
|
| + kUnknownConditionName, &list_value, &error);
|
| + EXPECT_FALSE(error.empty());
|
| + EXPECT_FALSE(result.get());
|
| +
|
| + // Test success
|
| + error.clear();
|
| + result = WebRequestConditionAttribute::Create(
|
| + kSchemeConditionName, &http_string_value, &error);
|
| + EXPECT_TRUE(error.empty());
|
| + ASSERT_TRUE(result.get());
|
| + EXPECT_EQ(WebRequestConditionAttribute::CONDITION_HAS_SCHEME,
|
| + result->GetType());
|
| + TestURLRequest url_request_ok(GURL("http://www.example.com"), NULL);
|
| + EXPECT_TRUE(result->IsFulfilled(&url_request_ok));
|
| + TestURLRequest url_request_fail(GURL("https://www.example.com"), NULL);
|
| + EXPECT_FALSE(result->IsFulfilled(&url_request_fail));
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|