blob: 3dbf85df784802b43da6e3ef4ec3d6681279b069 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync/base/page_transition_conversion.h"
#include "components/sync/protocol/sync_enums.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/page_transition_types.h"
namespace syncer {
namespace {
TEST(PageTransitionConversionTest, Roundtrip) {
for (uint32_t transition_int = ui::PAGE_TRANSITION_FIRST;
transition_int <= ui::PAGE_TRANSITION_LAST_CORE; transition_int++) {
ui::PageTransition transition = ui::PageTransitionFromInt(transition_int);
sync_pb::SyncEnums_PageTransition sync_transition =
ToSyncPageTransition(transition);
ui::PageTransition recovered_transition =
FromSyncPageTransition(sync_transition);
// Converting to sync's format and back should be lossless.
EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
transition, recovered_transition));
}
}
TEST(PageTransitionConversionTest, StripsQualifiers) {
// Create a ui::PageTransition with a bunch of qualifiers.
ui::PageTransition transition = ui::PageTransitionFromInt(
ui::PAGE_TRANSITION_TYPED | ui::PAGE_TRANSITION_CHAIN_START |
ui::PAGE_TRANSITION_CHAIN_END | ui::PAGE_TRANSITION_CLIENT_REDIRECT |
ui::PAGE_TRANSITION_FORWARD_BACK);
// Converting to sync's format should work, but strip all the qualifiers.
sync_pb::SyncEnums_PageTransition sync_transition =
ToSyncPageTransition(transition);
EXPECT_EQ(sync_transition, sync_pb::SyncEnums_PageTransition_TYPED);
}
} // namespace
} // namespace syncer