187
194
EXPECT_EQ(normal, db.view_area().size);
189
db.orient(mir_orientation_right);
196
auto config = db.configuration();
198
config.orientation = mir_orientation_right;
199
db.configure(config);
190
200
EXPECT_EQ(transposed, db.view_area().size);
192
db.orient(mir_orientation_inverted);
202
config.orientation = mir_orientation_inverted;
203
db.configure(config);
193
204
EXPECT_EQ(normal, db.view_area().size);
195
db.orient(mir_orientation_left);
206
config.orientation = mir_orientation_left;
207
db.configure(config);
196
208
EXPECT_EQ(transposed, db.view_area().size);
199
TEST_F(AndroidDisplayBufferTest, test_db_forwards_size_along)
211
TEST_F(AndroidDisplayBuffer, reports_correct_size)
201
213
using namespace testing;
203
geom::Size fake_display_size{223, 332};
204
EXPECT_CALL(*mock_fb_bundle, fb_size())
206
.WillRepeatedly(Return(fake_display_size));
208
215
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
210
217
auto view_area = db.view_area();
212
219
geom::Point origin_pt{geom::X{0}, geom::Y{0}};
213
EXPECT_EQ(view_area.size, fake_display_size);
214
EXPECT_EQ(view_area.top_left, origin_pt);
220
EXPECT_EQ(display_size, view_area.size);
221
EXPECT_EQ(origin_pt, view_area.top_left);
217
TEST_F(AndroidDisplayBufferTest, db_egl_context_from_shared)
224
TEST_F(AndroidDisplayBuffer, creates_egl_context_from_shared_context)
219
226
using namespace testing;
295
302
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
296
303
db.release_current();
306
TEST_F(AndroidDisplayBuffer, sets_display_power_mode_to_on_at_start)
308
using namespace testing;
309
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
310
auto config = db.configuration();
311
EXPECT_EQ(mir_power_mode_on, config.power_mode);
314
TEST_F(AndroidDisplayBuffer, changes_display_power_mode)
316
using namespace testing;
317
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
320
EXPECT_CALL(*mock_display_device, mode(mir_power_mode_off))
322
EXPECT_CALL(*mock_display_device, mode(mir_power_mode_on))
325
auto config = db.configuration();
326
config.power_mode = mir_power_mode_off;
327
db.configure(config);
329
config = db.configuration();
330
config.power_mode = mir_power_mode_on;
331
db.configure(config);
334
TEST_F(AndroidDisplayBuffer, disregards_double_display_power_mode_request)
336
using namespace testing;
337
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
339
EXPECT_CALL(*mock_display_device, mode(mir_power_mode_off))
342
auto config = db.configuration();
343
config.power_mode = mir_power_mode_off;
344
db.configure(config);
345
config.power_mode = mir_power_mode_suspend;
346
db.configure(config);
347
config.power_mode = mir_power_mode_standby;
348
db.configure(config);
351
//configuration tests
352
TEST_F(AndroidDisplayBuffer, display_orientation_supported)
354
using namespace testing;
356
EXPECT_CALL(*mock_display_device, apply_orientation(mir_orientation_left))
358
.WillOnce(Return(true));
360
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
362
auto config = db.configuration();
363
config.orientation = mir_orientation_left;
364
db.configure(config);
366
config = db.configuration();
367
EXPECT_EQ(mir_orientation_normal, config.orientation);
370
TEST_F(AndroidDisplayBuffer, display_orientation_not_supported)
372
using namespace testing;
373
EXPECT_CALL(*mock_display_device, apply_orientation(mir_orientation_left))
375
.WillOnce(Return(false));
377
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
379
auto config = db.configuration();
380
config.orientation = mir_orientation_left;
381
db.configure(config);
383
config = db.configuration();
384
EXPECT_EQ(mir_orientation_left, config.orientation);
387
TEST_F(AndroidDisplayBuffer, incorrect_display_configure_throws)
389
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
390
auto config = db.configuration();
392
config.current_format = mir_pixel_format_invalid;
394
db.configure(config);
395
}, std::runtime_error);
398
TEST_F(AndroidDisplayBuffer, android_display_configuration_info)
400
mga::DisplayBuffer db(mock_fb_bundle, mock_display_device, native_window, *gl_context);
401
auto disp_conf = db.configuration();
403
ASSERT_EQ(1u, disp_conf.modes.size());
404
auto& disp_mode = disp_conf.modes[0];
405
EXPECT_EQ(display_size, disp_mode.size);
407
EXPECT_EQ(mg::DisplayConfigurationOutputId{1}, disp_conf.id);
408
EXPECT_EQ(mg::DisplayConfigurationCardId{0}, disp_conf.card_id);
409
EXPECT_TRUE(disp_conf.connected);
410
EXPECT_TRUE(disp_conf.used);
411
auto origin = geom::Point{0,0};
412
EXPECT_EQ(origin, disp_conf.top_left);
413
EXPECT_EQ(0, disp_conf.current_mode_index);
415
//TODO fill refresh rate accordingly
416
//TODO fill physical_size_mm fields accordingly;