// Copyright 2016 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 "core/layout/ng/ng_block_layout_algorithm.h"

#include "core/layout/ng/ng_box.h"
#include "core/layout/ng/ng_constraint_space.h"
#include "core/layout/ng/ng_fragment.h"
#include "core/style/ComputedStyle.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace blink {
namespace {

class NGBlockLayoutAlgorithmTest : public ::testing::Test {
 protected:
  void SetUp() override {
    style_ = ComputedStyle::create();
  }

  RefPtr<ComputedStyle> style_;
};

TEST_F(NGBlockLayoutAlgorithmTest, FixedSize) {
  style_->setWidth(Length(30, Fixed));
  style_->setHeight(Length(40, Fixed));

  NGConstraintSpace space(LayoutUnit(100), LayoutUnit(-1));

  NGBlockLayoutAlgorithm algorithm(style_, NGBox(nullptr));
  NGFragment* frag = algorithm.layout(space);
  EXPECT_EQ(frag->inlineSize(), LayoutUnit(30));
  EXPECT_EQ(frag->blockSize(), LayoutUnit(40));
}

}  // namespace
}  // namespace blink
