Commit f1e564f6 authored by Jazz Xu's avatar Jazz Xu Committed by Commit Bot

[Media Controls] Touchless menu unit tests

Add context menu unit tests

Bug: 942156
Change-Id: Ibb2feb1220098ba43f52b37b2e93b4b6efbc0e09
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1600493Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Jazz Xu <jazzhsu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#659167}
parent 4853e3cc
...@@ -398,8 +398,11 @@ jumbo_source_set("unit_tests") { ...@@ -398,8 +398,11 @@ jumbo_source_set("unit_tests") {
] ]
if (is_android && notouch_build) { if (is_android && notouch_build) {
sources += sources += [
[ "media_controls/touchless/media_controls_touchless_impl_test.cc" ] "media_controls/touchless/media_controls_touchless_impl_test.cc",
"media_controls/touchless/test_media_controls_menu_host.cc",
"media_controls/touchless/test_media_controls_menu_host.h",
]
} }
configs += [ configs += [
......
...@@ -448,9 +448,13 @@ void MediaControlsTouchlessImpl::Trace(blink::Visitor* visitor) { ...@@ -448,9 +448,13 @@ void MediaControlsTouchlessImpl::Trace(blink::Visitor* visitor) {
HTMLDivElement::Trace(visitor); HTMLDivElement::Trace(visitor);
} }
void MediaControlsTouchlessImpl::OnMediaMenuResultForTest( void MediaControlsTouchlessImpl::SetMediaControlsMenuHostForTesting(
mojom::blink::MenuResponsePtr response) { mojom::blink::MediaControlsMenuHostPtr menu_host) {
OnMediaMenuResult(std::move(response)); media_controls_host_ = std::move(menu_host);
}
void MediaControlsTouchlessImpl::MenuHostFlushForTesting() {
media_controls_host_.FlushForTesting();
} }
} // namespace blink } // namespace blink
...@@ -71,7 +71,9 @@ class MODULES_EXPORT MediaControlsTouchlessImpl final ...@@ -71,7 +71,9 @@ class MODULES_EXPORT MediaControlsTouchlessImpl final
MediaControlsTouchlessMediaEventListener& MediaEventListener() const; MediaControlsTouchlessMediaEventListener& MediaEventListener() const;
// Test functions // Test functions
void OnMediaMenuResultForTest(mojom::blink::MenuResponsePtr); void SetMediaControlsMenuHostForTesting(
mojom::blink::MediaControlsMenuHostPtr);
void MenuHostFlushForTesting();
void Trace(blink::Visitor*) override; void Trace(blink::Visitor*) override;
......
// Copyright 2019 The Chromium 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 "third_party/blink/renderer/modules/media_controls/touchless/test_media_controls_menu_host.h"
namespace blink {
mojom::blink::MediaControlsMenuHostPtr
TestMediaControlsMenuHost::CreateMediaControlsMenuHostPtr() {
mojom::blink::MediaControlsMenuHostPtr ptr;
binding_.Bind(mojo::MakeRequest(&ptr));
return ptr;
}
void TestMediaControlsMenuHost::ShowMediaMenu(
const WTF::Vector<mojom::MenuItem>& menu_items,
mojom::blink::VideoStatePtr video_state,
base::Optional<WTF::Vector<mojom::blink::TextTrackMetadataPtr>> text_tracks,
ShowMediaMenuCallback callback) {
arg_list_.menu_items = WTF::Vector<mojom::MenuItem>(menu_items);
arg_list_.video_state = mojom::blink::VideoState::New();
arg_list_.video_state->is_fullscreen = video_state->is_fullscreen;
arg_list_.video_state->is_muted = video_state->is_muted;
arg_list_.text_tracks = WTF::Vector<mojom::blink::TextTrackMetadataPtr>(
std::move(text_tracks.value()));
std::move(callback).Run(std::move(response_));
}
TestMenuHostArgList& TestMediaControlsMenuHost::GetMenuHostArgList() {
return arg_list_;
}
void TestMediaControlsMenuHost::SetMenuResponse(
mojom::blink::MenuItem menu_item,
int track_index) {
if (response_.is_null())
response_ = mojom::blink::MenuResponse::New();
response_->clicked = menu_item;
response_->track_index = track_index;
}
} // namespace blink
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_TOUCHLESS_TEST_MEDIA_CONTROLS_MENU_HOST_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_TOUCHLESS_TEST_MEDIA_CONTROLS_MENU_HOST_H_
#include "mojo/public/cpp/bindings/binding.h"
#include "third_party/blink/public/mojom/media_controls/touchless/media_controls.mojom-blink.h"
namespace blink {
struct TestMenuHostArgList {
WTF::Vector<mojom::MenuItem> menu_items;
mojom::blink::VideoStatePtr video_state;
WTF::Vector<mojom::blink::TextTrackMetadataPtr> text_tracks;
};
class TestMediaControlsMenuHost : public mojom::blink::MediaControlsMenuHost {
public:
mojom::blink::MediaControlsMenuHostPtr CreateMediaControlsMenuHostPtr();
void ShowMediaMenu(
const WTF::Vector<mojom::MenuItem>& menu_items,
mojom::blink::VideoStatePtr video_state,
base::Optional<WTF::Vector<mojom::blink::TextTrackMetadataPtr>>
text_tracks,
ShowMediaMenuCallback callback) override;
TestMenuHostArgList& GetMenuHostArgList();
void SetMenuResponse(mojom::blink::MenuItem menu_item, int track_index);
private:
mojo::Binding<mojom::blink::MediaControlsMenuHost> binding_{this};
TestMenuHostArgList arg_list_;
mojom::blink::MenuResponsePtr response_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_TOUCHLESS_TEST_MEDIA_CONTROLS_MENU_HOST_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment