skia_gold_matching_algorithm_unittest.cc 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2020 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. #include "ui/base/test/skia_gold_matching_algorithm.h"
  5. #include "base/command_line.h"
  6. #include "base/files/file_path.h"
  7. #include "base/test/gtest_util.h"
  8. #include "testing/gtest/include/gtest/gtest.h"
  9. namespace ui {
  10. namespace test {
  11. class SkiaGoldMatchingAlgorithmTest : public ::testing::Test {};
  12. TEST_F(SkiaGoldMatchingAlgorithmTest, ExactMatching) {
  13. base::CommandLine cmd(base::CommandLine::NO_PROGRAM);
  14. ExactSkiaGoldMatchingAlgorithm algorithm;
  15. algorithm.AppendAlgorithmToCmdline(cmd);
  16. EXPECT_EQ(
  17. cmd.GetArgumentsString().find(FILE_PATH_LITERAL("add-test-optional-key")),
  18. base::CommandLine::StringType::npos);
  19. }
  20. TEST_F(SkiaGoldMatchingAlgorithmTest, FuzzyMatching) {
  21. base::CommandLine cmd(base::CommandLine::NO_PROGRAM);
  22. FuzzySkiaGoldMatchingAlgorithm algorithm(1, 2, 3);
  23. algorithm.AppendAlgorithmToCmdline(cmd);
  24. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  25. "--add-test-optional-key=image_matching_algorithm:fuzzy")),
  26. base::CommandLine::StringType::npos);
  27. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  28. "--add-test-optional-key=fuzzy_max_different_pixels:1")),
  29. base::CommandLine::StringType::npos);
  30. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  31. "--add-test-optional-key=fuzzy_pixel_delta_threshold:2")),
  32. base::CommandLine::StringType::npos);
  33. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  34. "--add-test-optional-key=fuzzy_ignored_border_thickness:3")),
  35. base::CommandLine::StringType::npos);
  36. }
  37. TEST_F(SkiaGoldMatchingAlgorithmTest, SobelMatching) {
  38. base::CommandLine cmd(base::CommandLine::NO_PROGRAM);
  39. SobelSkiaGoldMatchingAlgorithm algorithm(1, 2, 3, 4);
  40. algorithm.AppendAlgorithmToCmdline(cmd);
  41. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  42. "--add-test-optional-key=image_matching_algorithm:sobel")),
  43. base::CommandLine::StringType::npos);
  44. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  45. "--add-test-optional-key=fuzzy_max_different_pixels:1")),
  46. base::CommandLine::StringType::npos);
  47. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  48. "--add-test-optional-key=fuzzy_pixel_delta_threshold:2")),
  49. base::CommandLine::StringType::npos);
  50. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  51. "--add-test-optional-key=sobel_edge_threshold:3")),
  52. base::CommandLine::StringType::npos);
  53. EXPECT_NE(cmd.GetArgumentsString().find(FILE_PATH_LITERAL(
  54. "--add-test-optional-key=fuzzy_ignored_border_thickness:4")),
  55. base::CommandLine::StringType::npos);
  56. }
  57. TEST_F(SkiaGoldMatchingAlgorithmTest, InvalidInput) {
  58. EXPECT_DCHECK_DEATH(SobelSkiaGoldMatchingAlgorithm(-1, 2, 3, 4));
  59. EXPECT_DCHECK_DEATH(SobelSkiaGoldMatchingAlgorithm(1, -1, 3, 4));
  60. EXPECT_DCHECK_DEATH(SobelSkiaGoldMatchingAlgorithm(1, 2, -1, 4));
  61. EXPECT_DCHECK_DEATH(SobelSkiaGoldMatchingAlgorithm(1, 2, 3, -1));
  62. EXPECT_DCHECK_DEATH(SobelSkiaGoldMatchingAlgorithm(1, 2, 256, 4));
  63. }
  64. } // namespace test
  65. } // namespace ui