| Index: android_webview/native/permission/permission_request_handler_unittest.cc
|
| diff --git a/android_webview/native/permission/permission_request_handler_unittest.cc b/android_webview/native/permission/permission_request_handler_unittest.cc
|
| deleted file mode 100644
|
| index 2948dd9910a2308d98ad7b0a2ba10fa405aca955..0000000000000000000000000000000000000000
|
| --- a/android_webview/native/permission/permission_request_handler_unittest.cc
|
| +++ /dev/null
|
| @@ -1,269 +0,0 @@
|
| -// Copyright 2014 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 "android_webview/native/permission/aw_permission_request.h"
|
| -#include "android_webview/native/permission/aw_permission_request_delegate.h"
|
| -#include "android_webview/native/permission/permission_request_handler.h"
|
| -#include "android_webview/native/permission/permission_request_handler_client.h"
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace android_webview {
|
| -
|
| -class TestAwPermissionRequestDelegate : public AwPermissionRequestDelegate {
|
| - public:
|
| - TestAwPermissionRequestDelegate(
|
| - const GURL& origin, int64 resources, base::Callback<void(bool)> callback)
|
| - : origin_(origin),
|
| - resources_(resources),
|
| - callback_(callback) {}
|
| -
|
| - // Get the origin which initiated the permission request.
|
| - virtual const GURL& GetOrigin() OVERRIDE {
|
| - return origin_;
|
| - }
|
| -
|
| - // Get the resources the origin wanted to access.
|
| - virtual int64 GetResources() OVERRIDE {
|
| - return resources_;
|
| - }
|
| -
|
| - // Notify the permission request is allowed or not.
|
| - virtual void NotifyRequestResult(bool allowed) OVERRIDE {
|
| - callback_.Run(allowed);
|
| - }
|
| -
|
| - private:
|
| - GURL origin_;
|
| - int64 resources_;
|
| - base::Callback<void(bool)> callback_;
|
| -};
|
| -
|
| -class TestPermissionRequestHandlerClient :
|
| - public PermissionRequestHandlerClient {
|
| - public:
|
| - struct Permission {
|
| - Permission()
|
| - :resources(0) {}
|
| - Permission(const GURL& origin, int64 resources)
|
| - : origin(origin),
|
| - resources(resources) {}
|
| - GURL origin;
|
| - int64 resources;
|
| - };
|
| -
|
| - virtual void OnPermissionRequest(AwPermissionRequest* request) OVERRIDE {
|
| - request_ = request;
|
| - requested_permission_ =
|
| - Permission(request->GetOrigin(), request->GetResources());
|
| - }
|
| -
|
| - virtual void OnPermissionRequestCanceled(
|
| - AwPermissionRequest* request) OVERRIDE{
|
| - canceled_permission_ =
|
| - Permission(request->GetOrigin(), request->GetResources());
|
| - }
|
| -
|
| - AwPermissionRequest* request() {
|
| - return request_;
|
| - }
|
| -
|
| - const Permission& requested_permission() {
|
| - return requested_permission_;
|
| - }
|
| -
|
| - const Permission& canceled_permission() {
|
| - return canceled_permission_;
|
| - }
|
| -
|
| - void Grant() {
|
| - request_->OnAccept(NULL, NULL, true);
|
| - request_ = NULL;
|
| - }
|
| -
|
| - void Deny() {
|
| - request_->OnAccept(NULL, NULL, false);
|
| - request_ = NULL;
|
| - }
|
| -
|
| - private:
|
| - AwPermissionRequest* request_;
|
| - Permission requested_permission_;
|
| - Permission canceled_permission_;
|
| -};
|
| -
|
| -class TestPermissionRequestHandler : public PermissionRequestHandler {
|
| - public:
|
| - TestPermissionRequestHandler(PermissionRequestHandlerClient* client)
|
| - : PermissionRequestHandler(client) {
|
| - }
|
| -
|
| - const std::vector<base::WeakPtr<AwPermissionRequest> > requests() {
|
| - return requests_;
|
| - }
|
| -
|
| - void PruneRequests() {
|
| - return PermissionRequestHandler::PruneRequests();
|
| - }
|
| -};
|
| -
|
| -class PermissionRequestHandlerTest : public testing::Test {
|
| - public:
|
| - PermissionRequestHandlerTest()
|
| - : handler_(&client_),
|
| - allowed_(false) {}
|
| -
|
| - void NotifyRequestResult(bool allowed) {
|
| - allowed_ = allowed;
|
| - }
|
| -
|
| - protected:
|
| - virtual void SetUp() OVERRIDE {
|
| - testing::Test::SetUp();
|
| - origin_ = GURL("http://www.google.com");
|
| - resources_ =
|
| - AwPermissionRequest::VideoCapture | AwPermissionRequest::AudioCapture;
|
| - delegate_.reset(
|
| - new TestAwPermissionRequestDelegate(
|
| - origin_, resources_, base::Bind(
|
| - &PermissionRequestHandlerTest::NotifyRequestResult,
|
| - base::Unretained(this))));
|
| - }
|
| -
|
| - const GURL& origin() {
|
| - return origin_;
|
| - }
|
| -
|
| - int64 resources() {
|
| - return resources_;
|
| - }
|
| -
|
| - scoped_ptr<AwPermissionRequestDelegate> delegate() {
|
| - return delegate_.Pass();
|
| - }
|
| -
|
| - TestPermissionRequestHandler* handler() {
|
| - return &handler_;
|
| - }
|
| -
|
| - TestPermissionRequestHandlerClient* client() {
|
| - return &client_;
|
| - }
|
| -
|
| - bool allowed() {
|
| - return allowed_;
|
| - }
|
| -
|
| - private:
|
| - GURL origin_;
|
| - int64 resources_;
|
| - scoped_ptr<AwPermissionRequestDelegate> delegate_;
|
| - TestPermissionRequestHandlerClient client_;
|
| - TestPermissionRequestHandler handler_;
|
| - bool allowed_;
|
| -};
|
| -
|
| -TEST_F(PermissionRequestHandlerTest, TestPermissionGranted) {
|
| - handler()->SendRequest(delegate().Pass());
|
| - // Verify Handler store the request correctly.
|
| - ASSERT_EQ(1u, handler()->requests().size());
|
| - EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
|
| -
|
| - // Verify client's onPermissionRequest was called
|
| - EXPECT_EQ(origin(), client()->request()->GetOrigin());
|
| - EXPECT_EQ(resources(), client()->request()->GetResources());
|
| -
|
| - // Simulate the grant request.
|
| - client()->Grant();
|
| - // Verify the request is notified as granted
|
| - EXPECT_TRUE(allowed());
|
| - handler()->PruneRequests();
|
| - // Verify the weak reference in handler was removed.
|
| - EXPECT_TRUE(handler()->requests().empty());
|
| -}
|
| -
|
| -TEST_F(PermissionRequestHandlerTest, TestPermissionDenied) {
|
| - handler()->SendRequest(delegate().Pass());
|
| - // Verify Handler store the request correctly.
|
| - ASSERT_EQ(1u, handler()->requests().size());
|
| - EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
|
| -
|
| - // Verify client's onPermissionRequest was called
|
| - EXPECT_EQ(origin(), client()->request()->GetOrigin());
|
| - EXPECT_EQ(resources(), client()->request()->GetResources());
|
| -
|
| - // Simulate the deny request.
|
| - client()->Deny();
|
| - // Verify the request is notified as granted
|
| - EXPECT_FALSE(allowed());
|
| - handler()->PruneRequests();
|
| - // Verify the weak reference in handler was removed.
|
| - EXPECT_TRUE(handler()->requests().empty());
|
| -}
|
| -
|
| -TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) {
|
| - GURL origin1 = GURL("http://a.google.com");
|
| - int64 resources1 = AwPermissionRequest::Geolocation;
|
| -
|
| - scoped_ptr<AwPermissionRequestDelegate> delegate1;
|
| - delegate1.reset(new TestAwPermissionRequestDelegate(
|
| - origin1, resources1,
|
| - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
|
| - base::Unretained(this))));
|
| -
|
| - // Send 1st request
|
| - handler()->SendRequest(delegate().Pass());
|
| - // Verify Handler store the request correctly.
|
| - ASSERT_EQ(1u, handler()->requests().size());
|
| - EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
|
| - // Verify client's onPermissionRequest was called
|
| - EXPECT_EQ(origin(), client()->request()->GetOrigin());
|
| - EXPECT_EQ(resources(), client()->request()->GetResources());
|
| -
|
| - // Send 2nd request
|
| - handler()->SendRequest(delegate1.Pass());
|
| - // Verify Handler store the request correctly.
|
| - ASSERT_EQ(2u, handler()->requests().size());
|
| - EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
|
| - EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin());
|
| - EXPECT_EQ(resources1, handler()->requests()[1]->GetResources());
|
| - // Verify client's onPermissionRequest was called
|
| - EXPECT_EQ(origin1, client()->request()->GetOrigin());
|
| - EXPECT_EQ(resources1, client()->request()->GetResources());
|
| -
|
| - // Send 3rd request which has same origin and resources as first one.
|
| - delegate1.reset(new TestAwPermissionRequestDelegate(origin(), resources(),
|
| - base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
|
| - base::Unretained(this))));
|
| - handler()->SendRequest(delegate1.Pass());
|
| - // Verify Handler store the request correctly.
|
| - ASSERT_EQ(3u, handler()->requests().size());
|
| - EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
|
| - EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin());
|
| - EXPECT_EQ(resources1, handler()->requests()[1]->GetResources());
|
| - EXPECT_EQ(origin(), handler()->requests()[2]->GetOrigin());
|
| - EXPECT_EQ(resources(), handler()->requests()[2]->GetResources());
|
| - // Verify client's onPermissionRequest was called
|
| - EXPECT_EQ(origin(), client()->request()->GetOrigin());
|
| - EXPECT_EQ(resources(), client()->request()->GetResources());
|
| -
|
| - // Cancel the request.
|
| - handler()->CancelRequest(origin(), resources());
|
| - // Verify client's OnPermissionRequestCancled() was called.
|
| - EXPECT_EQ(origin(), client()->canceled_permission().origin);
|
| - EXPECT_EQ(resources(), client()->canceled_permission().resources);
|
| - // Verify Handler store the request correctly, the 1st and 3rd were removed.
|
| - handler()->PruneRequests();
|
| - ASSERT_EQ(1u, handler()->requests().size());
|
| - EXPECT_EQ(origin1, handler()->requests()[0]->GetOrigin());
|
| - EXPECT_EQ(resources1, handler()->requests()[0]->GetResources());
|
| -}
|
| -
|
| -} // android_webview
|
|
|