blob: e65641264d8e1e84b3a0ecbd9b74a67cbb3dadb9 [file] [log] [blame]
// Copyright 2013 The Flutter 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 "variable_refresh_rate_display.h"
#include "vsync_waiters_test.h"
#include "gtest/gtest.h"
namespace flutter {
namespace testing {
TEST(VariableRefreshRateDisplayTest, ReportCorrectInitialRefreshRate) {
auto refresh_rate_reporter = std::make_shared<TestRefreshRateReporter>(60);
auto display = flutter::VariableRefreshRateDisplay(
std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter));
ASSERT_EQ(display.GetRefreshRate(), 60);
}
TEST(VariableRefreshRateDisplayTest, ReportCorrectRefreshRateWhenUpdated) {
auto refresh_rate_reporter = std::make_shared<TestRefreshRateReporter>(60);
auto display = flutter::VariableRefreshRateDisplay(
std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter));
refresh_rate_reporter->UpdateRefreshRate(30);
ASSERT_EQ(display.GetRefreshRate(), 30);
}
TEST(VariableRefreshRateDisplayTest,
Report0IfReporterSharedPointerIsDestroyedAfterDisplayCreation) {
auto refresh_rate_reporter = std::make_shared<TestRefreshRateReporter>(60);
auto display = flutter::VariableRefreshRateDisplay(
std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter));
refresh_rate_reporter.reset();
ASSERT_EQ(display.GetRefreshRate(), 0);
}
TEST(VariableRefreshRateDisplayTest,
Report0IfReporterSharedPointerIsDestroyedBeforeDisplayCreation) {
auto refresh_rate_reporter = std::make_shared<TestRefreshRateReporter>(60);
refresh_rate_reporter.reset();
auto display = flutter::VariableRefreshRateDisplay(
std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter));
ASSERT_EQ(display.GetRefreshRate(), 0);
}
} // namespace testing
} // namespace flutter