| // Copyright 2013 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/password_manager/psl_matching_helper.h" |
| |
| #include "base/basictypes.h" |
| #include "components/autofill/core/common/password_form.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| TEST(PSLMatchingUtilsTest, IsPublicSuffixDomainMatch) { |
| struct TestPair { |
| const char* url1; |
| const char* url2; |
| bool should_match; |
| }; |
| |
| TestPair pairs[] = { |
| { "http://facebook.com", "http://m.facebook.com", true }, |
| { "http://www.facebook.com", "http://m.facebook.com", true }, |
| { "http://www.example.com", "http://wwwexample.com", false }, |
| { "http://www.example.com", "https://www.example.com", false }, |
| { "http://www.example.com:123", "http://www.example.com", false }, |
| { "http://www.example.org", "http://www.example.com", false }, |
| }; |
| |
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(pairs); ++i) { |
| autofill::PasswordForm form1; |
| form1.signon_realm = pairs[i].url1; |
| autofill::PasswordForm form2; |
| form2.signon_realm = pairs[i].url2; |
| EXPECT_EQ(pairs[i].should_match, |
| PSLMatchingHelper::IsPublicSuffixDomainMatch(form1.signon_realm, |
| form2.signon_realm)) |
| << "First URL = " << pairs[i].url1 |
| << ", second URL = " << pairs[i].url2; |
| } |
| } |