--- /dev/null
+#include <system_info.h>
+
+#include "haltest.h"
+#include "hal-bezel.h"
+
+class BEZEL : public testing::Test {
+ protected:
+ static void SetUpHalTestSuite() {
+ int ret_val;
+ enum bezel_state bstate;
+
+ ret_val = system_info_get_platform_bool(FEATURE_BEZEL, &BEZEL::supported);
+ ASSERT_EQ(ret_val, SYSTEM_INFO_ERROR_NONE) << "Failed to get bezel feature";
+
+ // setup original states for recovery after each testcase
+ ret_val = hal_device_bezel_get_state(&bstate);
+ orig_state = (ret_val == 0 ? (int)bstate : -1);
+ }
+
+ void SetUp() override {}
+
+ void TearDown() override {}
+
+ static void TearDownHalTestSuite() {
+ if (BEZEL::orig_state != -1)
+ hal_device_bezel_set_state((enum bezel_state)BEZEL::orig_state);
+ }
+
+ static bool supported;
+ static int orig_state;
+ static int orig_sw_state;
+ static int orig_vib_state;
+};
+
+bool BEZEL::supported = false;
+int BEZEL::orig_state = -1;
+int BEZEL::orig_sw_state = -1;
+int BEZEL::orig_vib_state = -1;
+
+
+TEST_F(BEZEL, GetBackendP)
+{
+ int ret_val;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ ret_val = hal_device_bezel_get_backend();
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get bezel device", ret_val);
+}
+
+TEST_F(BEZEL, GetStateP)
+{
+ int ret_val;
+ enum bezel_state state;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ ret_val = hal_device_bezel_get_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get bezel state", ret_val);
+}
+
+TEST_F(BEZEL, SetStateP)
+{
+ int ret_val;
+ enum bezel_state state;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ // test BEZEL_TURNOFF
+ ret_val = hal_device_bezel_set_state(BEZEL_TURNOFF);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set bezel state", ret_val);
+
+ ret_val = hal_device_bezel_get_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get bezel state", ret_val);
+ EXPECT_EQ(state, BEZEL_TURNOFF) << "Failed to set BEZEL_TURNOFF";
+
+ // test BEZEL_TURNON
+ ret_val = hal_device_bezel_set_state(BEZEL_TURNON);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set bezel state", ret_val);
+
+ ret_val = hal_device_bezel_get_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get bezel state", ret_val);
+ EXPECT_EQ(state, BEZEL_TURNON) << "Failed to set BEZEL_TURNON";
+
+ // restore
+ if (BEZEL::orig_state != -1)
+ hal_device_bezel_set_state((enum bezel_state)BEZEL::orig_state);
+}
+
+TEST_F(BEZEL, GetSwStateP)
+{
+ int ret_val;
+ enum bezel_state state;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ ret_val = hal_device_bezel_get_sw_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get swbezel state", ret_val);
+}
+
+TEST_F(BEZEL, SetSwStateP)
+{
+ int ret_val;
+ enum bezel_state state;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ // test BEZEL_TURNOFF
+ ret_val = hal_device_bezel_set_sw_state(BEZEL_TURNOFF);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set swbezel", ret_val);
+
+ ret_val = hal_device_bezel_get_sw_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get swbezel", ret_val);
+ EXPECT_EQ(state, BEZEL_TURNOFF) << "Fail to set swbezel";
+
+ // test BEZEL_TURNON
+ ret_val = hal_device_bezel_set_sw_state(BEZEL_TURNON);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set swbezel", ret_val);
+
+ ret_val = hal_device_bezel_get_sw_state(&state);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get swbezel", ret_val);
+ EXPECT_EQ(state, BEZEL_TURNON) << "Fail to set swbezel";
+
+ // restore
+ if (BEZEL::orig_state != -1)
+ hal_device_bezel_set_sw_state((enum bezel_state)BEZEL::orig_state);
+}
+
+TEST_F(BEZEL, GetVibStateP)
+{
+ int ret_val;
+ enum bezel_state vstate;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ ret_val = hal_device_bezel_get_vib_state(&vstate);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get vibration state", ret_val);
+}
+
+TEST_F(BEZEL, SetVibStateP)
+{
+ int ret_val;
+ enum bezel_state vstate;
+
+ if (!BEZEL::supported) {
+ SKIP_MESSAGE("Bezel not supported");
+ return;
+ }
+
+ // test BEZEL_TURNOFF
+ ret_val = hal_device_bezel_set_vib_state(BEZEL_TURNOFF);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set vibration state", ret_val);
+
+ ret_val = hal_device_bezel_get_vib_state(&vstate);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get vibartion state", ret_val);
+ EXPECT_EQ(vstate, BEZEL_TURNOFF) << "Failed to set vibration state";
+
+ // test BEZEL_TURNON
+ ret_val = hal_device_bezel_set_vib_state(BEZEL_TURNON);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to set vibration state", ret_val);
+
+ ret_val = hal_device_bezel_get_vib_state(&vstate);
+ if (ret_val == -ENODEV) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0) << strerr("Failed to get vibartion state", ret_val);
+ EXPECT_EQ(vstate, BEZEL_TURNON) << "Failed to set vibration state";
+
+ // restore
+ if (BEZEL::orig_vib_state != -1)
+ hal_device_bezel_set_vib_state((enum bezel_state)BEZEL::orig_vib_state);
+}