227
227
screencast.release(null_callback_func, nullptr);
230
TEST_F(MirScreencastTest, advances_buffer_stream_on_next_buffer)
232
using namespace testing;
236
EXPECT_CALL(mock_bs, next_buffer(_)).Times(1)
237
.WillOnce(Return(nullptr));
239
MirScreencast screencast{
242
default_pixel_format, stub_server,
243
mock_buffer_stream_factory,
244
null_callback_func, nullptr};
246
screencast.creation_wait_handle()->wait_for_all();
248
screencast.next_buffer(null_callback_func, nullptr);
251
230
TEST_F(MirScreencastTest, executes_callback_on_creation)
253
232
using namespace testing;
318
297
}, std::runtime_error);
321
TEST_F(MirScreencastTest, returns_params_from_buffer_stream)
323
using namespace ::testing;
325
MirSurfaceParameters expected_params;
326
expected_params.width = 1732;
327
expected_params.height = 33;
328
expected_params.pixel_format = default_pixel_format;
329
expected_params.buffer_usage = mir_buffer_usage_hardware;
330
expected_params.output_id = mir_display_output_id_invalid;
332
EXPECT_CALL(mock_bs, get_parameters()).Times(1)
333
.WillOnce(Return(expected_params));
335
MirScreencast screencast{
338
default_pixel_format, stub_server,
339
mock_buffer_stream_factory,
340
null_callback_func, nullptr};
342
screencast.creation_wait_handle()->wait_for_all();
344
auto params = screencast.get_parameters();
345
EXPECT_EQ(expected_params.width, params.width);
346
EXPECT_EQ(expected_params.height, params.height);
347
EXPECT_EQ(expected_params.pixel_format, params.pixel_format);
348
EXPECT_EQ(expected_params.buffer_usage, params.buffer_usage);
349
EXPECT_EQ(expected_params.output_id, params.output_id);
352
TEST_F(MirScreencastTest, returns_current_client_buffer)
354
using namespace testing;
356
auto const expected_client_buffer = std::make_shared<mtd::NullClientBuffer>();
358
EXPECT_CALL(mock_bs, get_current_buffer()).Times(1)
359
.WillOnce(Return(expected_client_buffer));
361
MirScreencast screencast{
364
default_pixel_format, stub_server,
365
mock_buffer_stream_factory,
366
null_callback_func, nullptr};
368
screencast.creation_wait_handle()->wait_for_all();
370
EXPECT_EQ(expected_client_buffer, screencast.get_current_buffer());
373
TEST_F(MirScreencastTest, gets_egl_native_window)
375
using namespace testing;
377
EGLNativeWindowType expected_native_window = reinterpret_cast<EGLNativeWindowType>(this); // any unique value
378
EXPECT_CALL(mock_bs, egl_native_window()).Times(1)
379
.WillOnce(Return(expected_native_window));
381
MirScreencast screencast{
384
default_pixel_format, stub_server,
385
mock_buffer_stream_factory,
386
null_callback_func, nullptr};
388
screencast.creation_wait_handle()->wait_for_all();
390
auto egl_native_window = screencast.egl_native_window();
392
EXPECT_EQ(expected_native_window, egl_native_window);
395
300
TEST_F(MirScreencastTest, is_invalid_if_server_create_screencast_fails)
397
302
using namespace testing;