Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(785)

Unified Diff: content/browser/presentation/presentation_service_impl_unittest.cc

Issue 1376703002: Presentation API: reject screen availability observing on Android low ram devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add moar unit tests Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/presentation/presentation_service_impl_unittest.cc
diff --git a/content/browser/presentation/presentation_service_impl_unittest.cc b/content/browser/presentation/presentation_service_impl_unittest.cc
index 09cb2376d65089485ea7befd5c5ce57190df233e..71ec2a0130b2a2862ad7ab02139a7b6b517808cc 100644
--- a/content/browser/presentation/presentation_service_impl_unittest.cc
+++ b/content/browser/presentation/presentation_service_impl_unittest.cc
@@ -70,11 +70,18 @@ class MockPresentationServiceDelegate : public PresentationServiceDelegate {
PresentationServiceDelegate::Observer* observer));
MOCK_METHOD2(RemoveObserver,
void(int render_process_id, int render_frame_id));
- MOCK_METHOD3(AddScreenAvailabilityListener,
- bool(
- int render_process_id,
- int routing_id,
- PresentationScreenAvailabilityListener* listener));
+
+ bool AddScreenAvailabilityListener(
Bernhard Bauer 2015/09/29 11:24:07 Is this overriding a method? If so, please add ove
mlamouri (slow - plz ping) 2015/09/29 11:34:27 Oups.
+ int render_process_id,
+ int routing_id,
+ PresentationScreenAvailabilityListener* listener) {
+ if (!screen_availability_listening_supported_) {
+ listener->OnScreenAvailabilityNotSupported();
Bernhard Bauer 2015/09/29 11:24:07 Nit: C++ usually doesn't use braces for single-lin
mlamouri (slow - plz ping) 2015/09/29 11:34:27 Done.
+ }
+ return AddScreenAvailabilityListener();
+ }
+ MOCK_METHOD0(AddScreenAvailabilityListener, bool());
+
MOCK_METHOD3(RemoveScreenAvailabilityListener,
void(
int render_process_id,
@@ -132,6 +139,13 @@ class MockPresentationServiceDelegate : public PresentationServiceDelegate {
void(int render_process_id,
int render_frame_id,
const content::SessionStateChangedCallback& state_changed_cb));
+
+ void set_screen_availability_listening_supported(bool value) {
+ screen_availability_listening_supported_ = value;
+ }
+
+ private:
+ bool screen_availability_listening_supported_ = true;
};
class MockPresentationServiceClient :
@@ -147,9 +161,8 @@ class MockPresentationServiceClient :
MOCK_METHOD2(OnSessionStateChanged,
void(const presentation::PresentationSessionInfo& session_info,
presentation::PresentationSessionState new_state));
- void OnScreenAvailabilityNotSupported(const mojo::String& url) override {
- NOTIMPLEMENTED();
- }
+
+ MOCK_METHOD1(OnScreenAvailabilityNotSupported, void(const mojo::String& url));
void OnSessionMessagesReceived(
presentation::PresentationSessionInfoPtr session_info,
@@ -198,7 +211,7 @@ class PresentationServiceImplTest : public RenderViewHostImplTestHarness {
// using RunLoop.
// The callback shouldn't be invoked since there is no availability
// result yet.
- EXPECT_CALL(mock_delegate_, AddScreenAvailabilityListener(_, _, _))
+ EXPECT_CALL(mock_delegate_, AddScreenAvailabilityListener())
.WillOnce(DoAll(
InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
Return(delegate_success)));
@@ -831,4 +844,12 @@ TEST_F(PresentationServiceImplTest, ListenForSessionStateChange) {
content::PRESENTATION_SESSION_STATE_CONNECTED);
}
+TEST_F(PresentationServiceImplTest, ScreenAvailabilityNotSupported) {
+ mock_delegate_.set_screen_availability_listening_supported(false);
+ EXPECT_CALL(mock_client_,
+ OnScreenAvailabilityNotSupported(Eq(kPresentationUrl)));
+
+ ListenForScreenAvailabilityAndWait(kPresentationUrl, false);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698