1// Copyright 2014 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 "components/dom_distiller/core/url_utils.h" 6 7#include "testing/gtest/include/gtest/gtest.h" 8 9namespace dom_distiller { 10 11namespace url_utils { 12 13TEST(DomDistillerUrlUtilsTest, TestPathUtil) { 14 const std::string single_key = "mypath?foo=bar"; 15 EXPECT_EQ("bar", GetValueForKeyInUrlPathQuery(single_key, "foo")); 16 const std::string two_keys = "mypath?key1=foo&key2=bar"; 17 EXPECT_EQ("foo", GetValueForKeyInUrlPathQuery(two_keys, "key1")); 18 EXPECT_EQ("bar", GetValueForKeyInUrlPathQuery(two_keys, "key2")); 19 const std::string multiple_same_key = "mypath?key=foo&key=bar"; 20 EXPECT_EQ("foo", GetValueForKeyInUrlPathQuery(multiple_same_key, "key")); 21} 22 23TEST(DomDistillerUrlUtilsTest, TestGetValueForKeyInUrlPathQuery) { 24 // Tests an invalid url. 25 const std::string invalid_url = "http://%40[::1]/"; 26 EXPECT_EQ("", GetValueForKeyInUrlPathQuery(invalid_url, "key")); 27 28 // Test a valid URL with the key we are searching for. 29 const std::string valid_url_with_key = "http://www.google.com?key=foo"; 30 EXPECT_EQ("foo", GetValueForKeyInUrlPathQuery(valid_url_with_key, "key")); 31 32 // Test a valid URL without the key we are searching for. 33 const std::string valid_url_no_key = "http://www.google.com"; 34 EXPECT_EQ("", GetValueForKeyInUrlPathQuery(valid_url_no_key, "key")); 35 36 // Test a valid URL with 2 values of the key we are searching for. 37 const std::string valid_url_two_keys = 38 "http://www.google.com?key=foo&key=bar"; 39 EXPECT_EQ("foo", GetValueForKeyInUrlPathQuery(valid_url_two_keys, "key")); 40} 41 42} // namespace url_utils 43 44} // namespace dom_distiller 45