Home | History | Annotate | Download | only in gfx
      1 // Copyright (c) 2012 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 "base/basictypes.h"
      6 #include "testing/gtest/include/gtest/gtest.h"
      7 #include "ui/gfx/insets.h"
      8 #include "ui/gfx/shadow_value.h"
      9 
     10 namespace gfx {
     11 
     12 TEST(ShadowValueTest, GetMargin) {
     13   const struct TestCase {
     14     Insets expected_margin;
     15     size_t shadow_count;
     16     ShadowValue shadows[2];
     17   } kTestCases[] = {
     18     {
     19       Insets(), 0, {},
     20     },
     21     {
     22       Insets(-2, -2, -2, -2),
     23       1,
     24       { ShadowValue(gfx::Point(0, 0), 4, 0), },
     25     },
     26     {
     27       Insets(0, -1, -4, -3),
     28       1,
     29       { ShadowValue(gfx::Point(1, 2), 4, 0), },
     30     },
     31     {
     32       Insets(-4, -3, 0, -1),
     33       1,
     34       { ShadowValue(gfx::Point(-1, -2), 4, 0), },
     35     },
     36     {
     37       Insets(0, -1, -5, -4),
     38       2,
     39       {
     40         ShadowValue(gfx::Point(1, 2), 4, 0),
     41         ShadowValue(gfx::Point(2, 3), 4, 0),
     42       },
     43     },
     44     {
     45       Insets(-4, -3, -5, -4),
     46       2,
     47       {
     48         ShadowValue(gfx::Point(-1, -2), 4, 0),
     49         ShadowValue(gfx::Point(2, 3), 4, 0),
     50       },
     51     },
     52   };
     53 
     54   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) {
     55     Insets margin = ShadowValue::GetMargin(
     56         ShadowValues(kTestCases[i].shadows,
     57                      kTestCases[i].shadows + kTestCases[i].shadow_count));
     58 
     59     EXPECT_EQ(kTestCases[i].expected_margin, margin) << " i=" << i;
     60   }
     61 }
     62 
     63 }  // namespace gfx
     64