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