blob: d9725cf815dafdd3a59ade6965e36d7cdab4e7d3 [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(
0, std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter), 600,
800, 60);
ASSERT_EQ(display.GetRefreshRate(), 60);
}
TEST(VariableRefreshRateDisplayTest, ReportCorrectRefreshRateWhenUpdated) {
auto refresh_rate_reporter = std::make_shared<TestRefreshRateReporter>(60);
auto display = flutter::VariableRefreshRateDisplay(
0, std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter), 600,
800, 60);
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(
0, std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter), 600,
800, 60);
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(
0, std::weak_ptr<TestRefreshRateReporter>(refresh_rate_reporter), 600,
800, 60);
ASSERT_EQ(display.GetRefreshRate(), 0);
}
} // namespace testing
} // namespace flutter