blob: 4f7b557fdaa92fdd95b917491fad74a9af9d83fd [file] [log] [blame]
// Copyright 2019 The Fuchsia 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 "garnet/lib/ui/gfx/engine/gfx_command_applier.h"
#include "garnet/lib/ui/gfx/tests/session_test.h"
#include "lib/ui/scenic/cpp/commands.h"
#include "gtest/gtest.h"
namespace scenic_impl {
namespace gfx {
namespace test {
using GfxCommandApplierTest = SessionTest;
TEST_F(GfxCommandApplierTest, NewCreateEntityNodeCmd) {
CommandContext empty_command_context(nullptr);
// Valid id passes
EXPECT_TRUE(GfxCommandApplier::ApplyCommand(
session_.get(), &empty_command_context,
scenic::NewCreateEntityNodeCmd(/*id*/ 1)));
// Invalid id fails
EXPECT_FALSE(GfxCommandApplier::ApplyCommand(
session_.get(), &empty_command_context,
scenic::NewCreateEntityNodeCmd(/*id*/ 0)));
}
TEST_F(GfxCommandApplierTest, EraseResource) {
CommandContext empty_command_context(nullptr);
EXPECT_TRUE(GfxCommandApplier::ApplyCommand(
session_.get(), &empty_command_context,
scenic::NewCreateEntityNodeCmd(/*id*/ 3)));
// Erasing non-existent resource fails
EXPECT_FALSE(
GfxCommandApplier::ApplyCommand(session_.get(), &empty_command_context,
scenic::NewReleaseResourceCmd(/*id*/ 2)));
// Erasing existing resource passes
EXPECT_TRUE(
GfxCommandApplier::ApplyCommand(session_.get(), &empty_command_context,
scenic::NewReleaseResourceCmd(/*id*/ 3)));
}
TEST_F(GfxCommandApplierTest, SeparateSessionsAreIndependent) {
auto session2 = CreateSession();
CommandContext empty_command_context(nullptr);
EXPECT_TRUE(GfxCommandApplier::ApplyCommand(
session_.get(), &empty_command_context,
scenic::NewCreateEntityNodeCmd(/*id*/ 3)));
EXPECT_FALSE(
GfxCommandApplier::ApplyCommand(session2.get(), &empty_command_context,
scenic::NewReleaseResourceCmd(/*id*/ 3)));
EXPECT_TRUE(GfxCommandApplier::ApplyCommand(
session2.get(), &empty_command_context,
scenic::NewCreateEntityNodeCmd(/*id*/ 3)));
EXPECT_TRUE(
GfxCommandApplier::ApplyCommand(session_.get(), &empty_command_context,
scenic::NewReleaseResourceCmd(/*id*/ 3)));
EXPECT_TRUE(
GfxCommandApplier::ApplyCommand(session2.get(), &empty_command_context,
scenic::NewReleaseResourceCmd(/*id*/ 3)));
}
} // namespace test
} // namespace gfx
} // namespace scenic_impl