chromium/chrome/browser/android/compositor/layer/tab_layer_unittest.cc

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/android/compositor/layer/tab_layer.h"

#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/size.h"

using android::TabLayer;

TEST(ComputePaddingPositionsTest, NoSideOrBottomPadding) {
  gfx::Size content_size(100, 400);
  gfx::Size desired_size(100, 400);
  gfx::Rect side_padding_rect;
  gfx::Rect bottom_padding_rect;

  TabLayer::ComputePaddingPositions(content_size,
                                    desired_size,
                                    &side_padding_rect,
                                    &bottom_padding_rect);

  EXPECT_TRUE(side_padding_rect.IsEmpty());
  EXPECT_TRUE(bottom_padding_rect.IsEmpty());
}

TEST(ComputePaddingPositionsTest, OnlySidePadding) {
  gfx::Size content_size(90, 400);
  gfx::Size desired_size(100, 400);
  gfx::Rect side_padding_rect;
  gfx::Rect bottom_padding_rect;

  TabLayer::ComputePaddingPositions(content_size,
                                    desired_size,
                                    &side_padding_rect,
                                    &bottom_padding_rect);

  EXPECT_EQ(10, side_padding_rect.size().width());
  EXPECT_EQ(400, side_padding_rect.size().height());
  EXPECT_EQ(90, side_padding_rect.x());
  EXPECT_TRUE(bottom_padding_rect.IsEmpty());
}

TEST(ComputePaddingPositionsTest, OnlyBottomPadding) {
  gfx::Size content_size(100, 300);
  gfx::Size desired_size(100, 400);
  gfx::Rect side_padding_rect;
  gfx::Rect bottom_padding_rect;

  TabLayer::ComputePaddingPositions(content_size,
                                    desired_size,
                                    &side_padding_rect,
                                    &bottom_padding_rect);

  EXPECT_TRUE(side_padding_rect.IsEmpty());
  EXPECT_EQ(100, bottom_padding_rect.size().width());
  EXPECT_EQ(100, bottom_padding_rect.size().height());
  EXPECT_EQ(300, bottom_padding_rect.y());
}

TEST(ComputePaddingPositionsTest, SideAndBottomPadding) {
  gfx::Size content_size(75, 250);
  gfx::Size desired_size(100, 400);
  gfx::Rect side_padding_rect;
  gfx::Rect bottom_padding_rect;

  TabLayer::ComputePaddingPositions(content_size,
                                    desired_size,
                                    &side_padding_rect,
                                    &bottom_padding_rect);

  EXPECT_EQ(25, side_padding_rect.size().width());
  EXPECT_EQ(250, side_padding_rect.size().height());
  EXPECT_EQ(75, side_padding_rect.x());

  EXPECT_EQ(100, bottom_padding_rect.size().width());
  EXPECT_EQ(150, bottom_padding_rect.size().height());
  EXPECT_EQ(250, bottom_padding_rect.y());
}