19ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
29ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
39ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)// found in the LICENSE file.
49ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)
59ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)#include "chrome/browser/profiles/file_path_verifier_win.h"
69ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)
79ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)#include "base/files/file_path.h"
89ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
99ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)
109ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)TEST(FilePathVerifierTest, ComparePathsIgnoreCase) {
119ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)  const struct PathComparisonReasonTestData {
129ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    const base::FilePath::CharType* inputs[2];
139ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    internal::PathComparisonReason expected;
149ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)  } cases[] = {
159ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    { { FILE_PATH_LITERAL("test/foo.bar"),
169ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        FILE_PATH_LITERAL("test/foo.bar") },
179ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)      internal::PATH_COMPARISON_EQUAL},
189ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    { { FILE_PATH_LITERAL("test\\foo.bar"),
199ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        FILE_PATH_LITERAL("test\\foo.bar") },
209ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)      internal::PATH_COMPARISON_EQUAL},
219ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    { { FILE_PATH_LITERAL("test/foo.bar"),
229ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        FILE_PATH_LITERAL("test/foo.baz") },
239ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)      internal::PATH_COMPARISON_FAILED_SAMEDIR},
249ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    { { FILE_PATH_LITERAL("test/foo.bar"),
259ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        FILE_PATH_LITERAL("test/joe/foo.bar") },
269ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)      internal::PATH_COMPARISON_FAILED_SAMEBASE},
279ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    { { FILE_PATH_LITERAL("test/foo.bar"),
289ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        FILE_PATH_LITERAL("jack/bar.buz") },
299ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)      internal::PATH_COMPARISON_FAILED_UNKNOWN},
309ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)  };
319ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)
329ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)  for (size_t i = 0; i < arraysize(cases); ++i) {
339ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    base::FilePath p1(cases[i].inputs[0]);
349ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    base::FilePath p2(cases[i].inputs[1]);
359ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    internal::PathComparisonReason reason =
369ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        internal::ComparePathsIgnoreCase(p1, p2);
379ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)    EXPECT_EQ(cases[i].expected, reason) <<
389ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)        "i: " << i << ", p1: " << p1.value() << ", p2: " << p2.value();
399ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)  }
409ab648a9d8bb43f27cc0620387d8052a8485a5eeTorne (Richard Coles)}
41