blob: 1694e4ce268cd311d33497b2ac46d588ba95eaf2 [file] [log] [blame]
// Copyright 2017 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 <utility>
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/geometry/point.h"
#include "ui/ozone/public/mojom/overlay_surface_candidate.mojom.h"
#include "ui/ozone/public/mojom/overlay_surface_candidate_mojom_traits.h"
#include "ui/ozone/public/overlay_surface_candidate.h"
namespace ui {
TEST(OverlaySurfaceCandidateStructTraitsTest, FieldsEqual) {
ui::OverlaySurfaceCandidate input;
input.transform = gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL;
input.format = gfx::BufferFormat::YUV_420_BIPLANAR;
input.buffer_size = gfx::Size(6, 7);
input.display_rect = gfx::RectF(1., 2., 3., 4.);
input.crop_rect = gfx::RectF(10., 20., 30., 40.);
input.clip_rect = gfx::Rect(11, 21, 31, 41);
input.is_clipped = true;
input.plane_z_order = 42;
input.overlay_handled = true;
ui::OverlaySurfaceCandidate output;
bool success = ui::ozone::mojom::OverlaySurfaceCandidate::Deserialize(
ui::ozone::mojom::OverlaySurfaceCandidate::Serialize(&input), &output);
EXPECT_TRUE(success);
EXPECT_EQ(input.transform, output.transform);
EXPECT_EQ(input.format, output.format);
EXPECT_EQ(input.buffer_size, output.buffer_size);
EXPECT_EQ(input.display_rect, output.display_rect);
EXPECT_EQ(input.crop_rect, output.crop_rect);
EXPECT_EQ(input.clip_rect, output.clip_rect);
EXPECT_EQ(input.is_clipped, output.is_clipped);
EXPECT_EQ(input.plane_z_order, output.plane_z_order);
EXPECT_EQ(input.overlay_handled, output.overlay_handled);
}
TEST(OverlaySurfaceCandidateStructTraitsTest, FalseBools) {
ui::OverlaySurfaceCandidate input;
input.is_clipped = false;
input.overlay_handled = false;
ui::OverlaySurfaceCandidate output;
bool success = ui::ozone::mojom::OverlaySurfaceCandidate::Deserialize(
ui::ozone::mojom::OverlaySurfaceCandidate::Serialize(&input), &output);
EXPECT_TRUE(success);
EXPECT_EQ(input.is_clipped, output.is_clipped);
EXPECT_EQ(input.overlay_handled, output.overlay_handled);
}
TEST(OverlaySurfaceCandidateStructTraitsTest, OverlayStatus) {
using OverlayStatusTraits =
mojo::EnumTraits<ui::ozone::mojom::OverlayStatus, ui::OverlayStatus>;
std::vector<OverlayStatus> tests = {OVERLAY_STATUS_PENDING,
OVERLAY_STATUS_ABLE, OVERLAY_STATUS_NOT};
for (const OverlayStatus& input : tests) {
ui::OverlayStatus output;
bool success = OverlayStatusTraits::FromMojom(
OverlayStatusTraits::ToMojom(input), &output);
EXPECT_TRUE(success);
EXPECT_EQ(input, output);
}
}
} // namespace ui