test: Add multi-surface focus test upstream 0.2.4 0.2.5
authorJonathan Maw <jonathan.maw@codethink.co.uk>
Wed, 29 Oct 2014 11:55:14 +0000 (11:55 +0000)
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Fri, 14 Nov 2014 04:43:55 +0000 (13:43 +0900)
This test works in isolation, but due to incomplete teardown
between tests, it does not work when run alongside other tests.

ivi-layermanagement-api/test/ilm_control_test.cpp

index 1fcab0b..7efc72a 100644 (file)
@@ -998,6 +998,41 @@ TEST_F(IlmCommandTest, ilm_keyboard_focus) {
     EXPECT_EQ(surface1, surface);
 }
 
+TEST_F(IlmCommandTest, ilm_keyboard_multi_focus) {
+    uint surfacelist[2];
+    int surfacelistcount;
+    uint surface1 = 36;
+    uint surface2 = 44;
+
+    ASSERT_EQ(ILM_SUCCESS, ilm_surfaceCreate((t_ilm_nativehandle)wlSurfaces[0], 0, 0, ILM_PIXELFORMAT_RGBA_8888, &surface1));
+    ASSERT_EQ(ILM_SUCCESS, ilm_surfaceCreate((t_ilm_nativehandle)wlSurfaces[1], 0, 0, ILM_PIXELFORMAT_RGBA_8888, &surface2));
+
+    /* No focus */
+    ASSERT_EQ(ILM_SUCCESS, ilm_GetKeyboardMultiFocusSurfaceIds(surfacelist, 2, &surfacelistcount));
+    EXPECT_EQ(0, surfacelistcount);
+
+    /* Multiple focus */
+    surfacelist[0] = surface1;
+    surfacelist[1] = surface2;
+    ASSERT_EQ(ILM_SUCCESS, ilm_SetKeyboardMultiFocus(surfacelist, 2));
+    surfacelist[0] = 0xFFFFFFFF;
+    surfacelist[1] = 0xFFFFFFFF;
+    surfacelistcount = 0;
+    ASSERT_EQ(ILM_SUCCESS, ilm_GetKeyboardMultiFocusSurfaceIds(surfacelist, 2, &surfacelistcount));
+    EXPECT_EQ(2, surfacelistcount);
+    EXPECT_TRUE(contains(surfacelist, surfacelistcount, surface1));
+    EXPECT_TRUE(contains(surfacelist, surfacelistcount, surface2));
+
+    /* Single focus */
+    surfacelist[0] = surface2;
+    ASSERT_EQ(ILM_SUCCESS, ilm_SetKeyboardMultiFocus(surfacelist, 1));
+    surfacelist[0] = 0xFFFFFFFF;
+    surfacelistcount = 0;
+    ASSERT_EQ(ILM_SUCCESS, ilm_GetKeyboardMultiFocusSurfaceIds(surfacelist, 2, &surfacelistcount));
+    EXPECT_EQ(1, surfacelistcount);
+    EXPECT_EQ(surface2, surfacelist[0]);
+}
+
 TEST_F(IlmCommandTest, ilm_input_event_acceptance) {
     uint surface;
     uint surface1 = 36;