blob: e4d3bc565c70a4763a9586f216c8f9a9a50b05f7 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/base/models/dialog_model_menu_model_adapter.h"
#include <memory>
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/interaction/element_identifier.h"
#include "ui/base/models/dialog_model.h"
#include "ui/base/models/dialog_model_field.h"
namespace ui {
TEST(DialogModelMenuModelAdapterTest, ReportsElementIds) {
DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kItem1Id);
DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kItem2Id);
constexpr char16_t kItem1Text[] = u"Item 1";
constexpr char16_t kItem2Text[] = u"Item 2";
constexpr char16_t kItem3Text[] = u"Item 3";
DialogModelMenuItem::Params item1_params;
item1_params.SetId(kItem1Id);
DialogModelMenuItem::Params item2_params;
item2_params.SetId(kItem2Id);
auto model = DialogModel::Builder()
.AddMenuItem(ImageModel(), kItem1Text, base::DoNothing(),
item1_params)
.AddMenuItem(ImageModel(), kItem2Text, base::DoNothing(),
item2_params)
.AddMenuItem(ImageModel(), kItem3Text, base::DoNothing())
.Build();
DialogModelMenuModelAdapter adapter(std::move(model));
EXPECT_EQ(kItem1Id, adapter.GetElementIdentifierAt(0));
EXPECT_EQ(kItem2Id, adapter.GetElementIdentifierAt(1));
EXPECT_EQ(ui::ElementIdentifier(), adapter.GetElementIdentifierAt(2));
}
} // namespace ui