10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file. 40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "components/cloud_devices/common/cloud_devices_urls.h" 60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include <string> 80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "testing/gmock/include/gmock/gmock.h" 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochusing testing::HasSubstr; 130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace cloud_devices { 150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 160529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintURL) { 170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string service_url = GetCloudPrintURL().spec(); 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(service_url, HasSubstr("www.google.com")); 190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(service_url, HasSubstr("cloudprint")); 200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 220529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintRelativeURL) { 230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(GetCloudPrintRelativeURL("///a/b/c///").spec(), 240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch HasSubstr("/cloudprint/a/b/c")); 250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(GetCloudPrintRelativeURL("a/b/c").spec(), 270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch HasSubstr("/cloudprint/a/b/c")); 280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 300529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintDialogUrl) { 310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string dialog_url = 320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch GetCloudPrintRelativeURL("client/dialog.html").spec(); 330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(dialog_url, HasSubstr("www.google.com")); 340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(dialog_url, HasSubstr("/cloudprint/")); 350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(dialog_url, HasSubstr("/client/")); 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(dialog_url, Not(HasSubstr("cloudprint/cloudprint"))); 370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(dialog_url, HasSubstr("/dialog.html")); 380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 400529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintManageUrl) { 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string manage_url = GetCloudPrintRelativeURL("manage.html").spec(); 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(manage_url, HasSubstr("www.google.com")); 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(manage_url, HasSubstr("/cloudprint/")); 440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(manage_url, Not(HasSubstr("/client/"))); 450529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(manage_url, Not(HasSubstr("cloudprint/cloudprint"))); 460529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(manage_url, HasSubstr("/manage.html")); 470529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 480529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 490529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintEnableURL) { 500529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string enable_url = GetCloudPrintEnableURL("123123").spec(); 510529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("proxy=123123")); 520529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("/enable_chrome_connector/enable.html")); 530529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("/cloudprint/")); 540529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 550529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST(CloudPrintURLTest, GetCloudPrintEnableWithSigninURL) { 575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string enable_url = GetCloudPrintEnableWithSigninURL("123123").spec(); 580529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("accounts.google.com")); 590529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("/ServiceLogin")); 600529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("service=cloudprint")); 610529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("continue=")); 620529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("proxy%3D123123")); 630529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("%2Fenable_chrome_connector%2Fenable")); 640529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(enable_url, HasSubstr("%2Fcloudprint%2F")); 650529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 660529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST(CloudPrintURLTest, GetCloudPrintManageDeviceURL) { 685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string manage_url = GetCloudPrintManageDeviceURL("123").spec(); 695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_THAT(manage_url, HasSubstr("www.google.com")); 705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_THAT(manage_url, HasSubstr("/cloudprint")); 715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_THAT(manage_url, HasSubstr("#printers/123")); 725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 740529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintSigninURL) { 750529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string signin_url = GetCloudPrintSigninURL().spec(); 760529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, HasSubstr("accounts.google.com")); 770529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, HasSubstr("/ServiceLogin")); 780529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, HasSubstr("service=cloudprint")); 790529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, HasSubstr("continue=")); 800529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, HasSubstr("%2Fcloudprint")); 810529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(signin_url, Not(HasSubstr("/cloudprint"))); 820529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 830529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 840529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochTEST(CloudPrintURLTest, GetCloudPrintAddAccountURL) { 850529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch std::string add_url = GetCloudPrintAddAccountURL().spec(); 860529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, HasSubstr("accounts.google.com")); 870529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, HasSubstr("/AddSession")); 880529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, HasSubstr("service=cloudprint")); 890529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, HasSubstr("continue=")); 900529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, HasSubstr("%2Fcloudprint")); 910529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EXPECT_THAT(add_url, Not(HasSubstr("/cloudprint"))); 920529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 930529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 940529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} // namespace cloud_devices 95