Add reading composer tests 83/240583/8 accepted/tizen/unified/20200820.034620 submit/tizen/20200817.223215
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 7 Aug 2020 08:46:33 +0000 (10:46 +0200)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 12 Aug 2020 14:35:57 +0000 (16:35 +0200)
Unittests for internal functions:
 * generate_description_trait
 * generate_role_trait
 * generate_state_trait

Change-Id: Ia2054792ffa99f50fe639a9e8d48bd4a07fa1324

CMakeLists.txt
include/utils.h
src/navigator.c
src/reading_composer.c
tests2/CMakeLists.txt
tests2/navigator.cpp
tests2/navigator.hpp
tests2/reading_composer.cpp [new file with mode: 0644]
tests2/reading_composer.hpp [new file with mode: 0644]
tests2/wrappers/mocked_reading_composer.cpp
tests2/wrappers/mocked_reading_composer.h

index 1595c6ebc1a42a7841fa787759274fb54e2e1850..73c0bbf7c0f2d1f00ca3bda9161c74143fa36600 100755 (executable)
@@ -106,13 +106,13 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tizen.screen-reader.xml DESTINATIO
 ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/res/po)
 ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/res/sounds)
 
-IF("${SEC_FEATURE_TAPI_ENABLE}" STREQUAL "1" AND "${UNITTEST}" STREQUAL "1")
+IF("${UNITTEST}" STREQUAL "1")
        SET(BUILD_SHARED_LIBS "OFF")
        SET(GTEST_HAS_PTHREAD "0")
        SET(gtest_disable_pthreads "ON")
        ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/googletest)
        ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/tests2)
-ENDIF("${SEC_FEATURE_TAPI_ENABLE}" STREQUAL "1" AND "${UNITTEST}" STREQUAL "1")
+ENDIF("${UNITTEST}" STREQUAL "1")
 
 #ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/tests)
 #ADD_TEST(NAME smart_navi_tests COMMAND ${CMAKE_SOURCE_DIR}/tests/smart_navi_test_suite)
index 0275ad546db472c669bfdfb261f58b726b52319a..b86d3646cdcdd16c8c52cfe19e6fb87de6018857 100644 (file)
 
 #define HOVERSEL_TRAIT_SIZE 200
 
+#ifndef TIZEN_GTEST
+#define TIZEN_PROD_STATIC static
+#else
+#define TIZEN_PROD_STATIC
+#endif
+
 /**
  * @brief Accessibility gestures
  */
index 27d9cbf8e9167d4983f1354841b8bf238910f68b..7a3c0568b1c793b5c09b2136474bfc09a0b51155 100644 (file)
 #include <symbols.h>
 #include <utils.h>
 
-#ifndef TIZEN_GTEST
-#define TIZEN_PROD_STATIC static
-#else
-#define TIZEN_PROD_STATIC
-#endif
-
 #define HAPTIC_VIBRATE_DURATION 30
 #define HAPTIC_VIBRATE_INTENSITY 50
 
index f2608ec227dc63ddb29d603ace8bf78f0cb6dddb..1806056fb6643d9c476c339f529279ff73bf88f8 100644 (file)
@@ -10,7 +10,7 @@
 #define STATE_SET_CONTAINS(states, state)\
        ((states & ((gint64)1 << state)) ? (EINA_TRUE) : (EINA_FALSE))
 
-static void display_info_about_object(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC void display_info_about_object(AtspiAccessibleReadingMaterial *rm)
 {
        DEBUG("START");
        DEBUG("------------------------");
@@ -28,7 +28,7 @@ static void display_info_about_object(AtspiAccessibleReadingMaterial *rm)
        DEBUG("END");
 }
 
-static void add_slider_description(Eina_Strbuf *buf, AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC void add_slider_description(Eina_Strbuf *buf, AtspiAccessibleReadingMaterial *rm)
 {
        char trait[HOVERSEL_TRAIT_SIZE] = "";
 
@@ -57,7 +57,7 @@ static void add_slider_description(Eina_Strbuf *buf, AtspiAccessibleReadingMater
        ESAL(buf, trait);
 }
 
-static char *generate_role_trait(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC char *generate_role_trait(AtspiAccessibleReadingMaterial *rm)
 {
        AtspiRole role = rm->role;
        char ret[TTS_MAX_TEXT_SIZE] = { [TTS_MAX_TEXT_SIZE - 1] = 0 };
@@ -158,7 +158,7 @@ static char *generate_role_trait(AtspiAccessibleReadingMaterial *rm)
        return g_strdup(ret);
 }
 
-static char *generate_state_trait(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC char *generate_state_trait(AtspiAccessibleReadingMaterial *rm)
 {
        AtspiRole role = rm->role;
        char ret[TTS_MAX_TEXT_SIZE] = "\0";
@@ -206,7 +206,7 @@ static char *generate_state_trait(AtspiAccessibleReadingMaterial *rm)
        return g_strdup(ret);
 }
 
-static char *generate_description_trait(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC char *generate_description_trait(AtspiAccessibleReadingMaterial *rm)
 {
        DEBUG("START");
        AtspiRole role = rm->role;
@@ -354,7 +354,7 @@ static char *generate_description_trait(AtspiAccessibleReadingMaterial *rm)
        return ret;
 }
 
-static char *generate_description_from_relation_object(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC char *generate_description_from_relation_object(AtspiAccessibleReadingMaterial *rm)
 {
        char *trait = NULL;
        Eina_Strbuf *buf;
@@ -391,7 +391,7 @@ static char *generate_description_from_relation_object(AtspiAccessibleReadingMat
        return trait;
 }
 
-static
+TIZEN_PROD_STATIC
 unsigned short int reading_composer_reading_attribute_get(AtspiAccessibleReadingMaterial *rm)
 {
        unsigned short int attribute = 0;
@@ -427,7 +427,7 @@ unsigned short int reading_composer_reading_attribute_get(AtspiAccessibleReading
        return attribute;
 }
 
-static
+TIZEN_PROD_STATIC
 void reading_composer_reading_material_free(AtspiAccessibleReadingMaterial *rm)
 {
        if (rm->parent)
index b42242f8db9033b1f956b8e7417095c18dc45eec..e2ac76a97b7c1784f044f8b70fcc93dee5a0aff3 100644 (file)
@@ -62,8 +62,7 @@ ENDFUNCTION(CREATE_TEST_FROM_SOURCE)
 #CREATE_TEST_FROM_SOURCE("utils.c" "utils.cpp")
 CREATE_TEST_FROM_SOURCE("navigator.c" "navigator.cpp")
 #CREATE_TEST_FROM_SOURCE("utils.c" "utils_display_info.cpp")
-#CREATE_TEST_FROM_SOURCE("utils.c" "utils_description_trait.cpp")
+CREATE_TEST_FROM_SOURCE("reading_composer.c" "reading_composer.cpp")
 #CREATE_TEST_FROM_SOURCE("utils.c" "utils_state_trait.cpp")
-#CREATE_TEST_FROM_SOURCE("utils.c" "utils_role_trait.cpp")
 #CREATE_TEST_FROM_SOURCE("utils.c" "utils_text_for_relation_objects.cpp")
 
index 8495dd91c107362d3b98691f1c4bd45a8976b7ac..f218f44b5f70a43aec6614b93a705b66448b848c 100644 (file)
@@ -1,6 +1,6 @@
 #include "navigator.hpp"
 
-TEST_F(ScreenReaderUtilsFixture, WidgetHasNameNullArgs) {
+TEST_F(ScreenReaderUtilsFixture, WidgetHasStateNullArgs) {
        EXPECT_FUNCTION_CALL(m_atspi_accessible_get_state_set, (nullptr)).WillOnce(Return(nullptr));
        EXPECT_FUNCTION_CALL(m_atspi_state_set_contains, (nullptr, ATSPI_STATE_INVALID)).WillOnce(Return(FALSE));
        EXPECT_FUNCTION_CALL(m_g_object_unref, (nullptr));
index 71436031d493725852b2a243cf623723046fa846..5d87f6b3f32496ea6d215ece85c2f026e8018ebb 100644 (file)
@@ -1,5 +1,4 @@
-#ifndef SCREEN_READER_UTILS_HPP_
-#define SCREEN_READER_UTILS_HPP_
+#pragma once
 
 #define DEFINE_MOCKING(mock_name) StrictMock<mock_ ## mock_name> m_ ## mock_name
 
@@ -56,4 +55,3 @@ public:
        }
 };
 
-#endif
diff --git a/tests2/reading_composer.cpp b/tests2/reading_composer.cpp
new file mode 100644 (file)
index 0000000..b5a5b78
--- /dev/null
@@ -0,0 +1,344 @@
+#include <memory>
+#include <functional>
+
+#include "reading_composer.hpp"
+
+/******************* generate_description_trait *******************/
+
+class DescriptionTraitFixture : public ReadingMaterialTraitFixture {
+public:
+       void RunTest(const char *string) {
+               std::unique_ptr<char, std::function<void(void*)>>
+                       ret(generate_description_trait(m_composer.get()), free);
+               EXPECT_STREQ(ret.get(), string);
+       }
+};
+
+TEST_F(DescriptionTraitFixture, NoRole) {
+       GetReadingComposerObject();
+       RunTest("");
+}
+
+TEST_F(DescriptionTraitFixture, RoleUnknown) {
+       GetReadingComposerObject(ATSPI_ROLE_UNKNOWN);
+       RunTest("");
+}
+
+TEST_F(DescriptionTraitFixture, EntryOrPasswordTextFocused) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_ENTRY);
+       composer->states = (1ll << ATSPI_STATE_EDITABLE) | (1ll << ATSPI_STATE_FOCUSED);
+       RunTest("IDS_ST_BODY_EDITING_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, EntryOrPasswordTextNotFocused) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_ENTRY);
+       composer->states = (1ll << ATSPI_STATE_EDITABLE);
+       RunTest("IDS_ST_BODY_DOUBLE_TAP_TO_ENTER_TEXT_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, MenuItemNoToolbar) {
+       NewParentObject(ATSPI_ROLE_INVALID);
+       GetReadingComposerObject(ATSPI_ROLE_MENU_ITEM);
+       RunTest("");
+}
+
+TEST_F(DescriptionTraitFixture, MenuItemWithToolbarSelected) {
+       NewParentObject(ATSPI_ROLE_TOOL_BAR);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_MENU_ITEM);
+       composer->is_selected_in_parent = 1;
+       RunTest("IDS_ACCS_BODY_TAB_P1SD_OF_P2SD");
+}
+
+TEST_F(DescriptionTraitFixture, MenuItemWithToolbarNotSelected) {
+       NewParentObject(ATSPI_ROLE_TOOL_BAR);
+       GetReadingComposerObject(ATSPI_ROLE_MENU_ITEM);
+       RunTest("IDS_ACCS_BODY_TAB_P1SD_OF_P2SD , IDS_ACCS_BODY_DOUBLE_TAP_TO_SELECT_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemNoAdditionalRole) {
+       NewParentObject();
+       GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       RunTest("");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemParentIsTreeTableAndNotMultiselectable) {
+       NewParentObject(ATSPI_ROLE_TREE_TABLE);
+       GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       RunTest("IDS_BR_BODY_IMAGE_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemParentIsTreeTableAndMultiselectable) {
+       NewParentObject(ATSPI_ROLE_TREE_TABLE);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->parent_states = (1 << ATSPI_STATE_MULTISELECTABLE);
+       RunTest("IDS_BR_BODY_IMAGE_T_TTSIDS_SCR_BODY_PD_SELECTED_IN_TOTAL_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemNotExpandable) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->states = (1ll << ATSPI_STATE_EXPANDED);
+       composer->child_count = 1;
+       composer->has_checkbox_child = 1;
+       RunTest("IDS_AM_OPT_HEADER_TTS , IDS_SCR_TBOPT_TICKBOX_FOR_ENTIRE_GROUP");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemExpandableAndExpanded) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->states = (1ll << ATSPI_STATE_EXPANDABLE) | (1ll << ATSPI_STATE_EXPANDED);
+       RunTest("IDS_AM_OPT_HEADER_TTS , IDS_TPLATFORM_BODY_EXPANDABLE_LIST , IDS_ACCS_BODY_DOUBLE_TAP_TO_COLLAPSE_THE_LIST_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ListItemExpandableAndNotExpanded) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->states = (1ll << ATSPI_STATE_EXPANDABLE);
+       RunTest("IDS_AM_OPT_HEADER_TTS , IDS_TPLATFORM_BODY_EXPANDABLE_LIST , IDS_ACCS_BODY_DOUBLE_TAP_TO_EXPAND_THE_LIST_T_TTS");
+}
+
+
+TEST_F(DescriptionTraitFixture, ListItemAnimated) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->parent_states = (1ll << ATSPI_STATE_ANIMATED);
+       RunTest("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, PopupMenu) {
+       NewParentObject();
+       GetReadingComposerObject(ATSPI_ROLE_POPUP_MENU);
+       RunTest("IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, Dialog) {
+       GetReadingComposerObject(ATSPI_ROLE_DIALOG);
+       RunTest("");
+}
+
+TEST_F(DescriptionTraitFixture, DialogWithChildren) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_DIALOG);
+       composer->list_children_count = 1;
+       RunTest("IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ComboBoxOrGlassPane) {
+       GetReadingComposerObject(ATSPI_ROLE_COMBO_BOX);
+       RunTest("IDS_ST_BODY_DOUBLE_TAP_TO_OPEN_THE_MENU_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, CheckBoxOrRadioButton) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_RADIO_BUTTON);
+       composer->states = (1ll << ATSPI_STATE_EDITABLE);
+       RunTest("IDS_ACCS_BODY_DOUBLE_TAP_TO_EDIT_T_TTS");
+}
+
+TEST_F(DescriptionTraitFixture, ProgressBar) {
+       GetReadingComposerObject(ATSPI_ROLE_PROGRESS_BAR);
+       RunTest("IDS_ACCS_TBBODY_IN_PROGRESS");
+}
+
+TEST_F(DescriptionTraitFixture, Slider) {
+       EXPECT_FUNCTION_CALL(m_get_accuracy, (_,_)).WillOnce(Return(1));
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_SLIDER);
+       composer->states = (1ll << ATSPI_STATE_ENABLED);
+       RunTest("IDS_GCTS_OPT_P1SS_PERCENT_TTS , IDS_TPLATFORM_BODY_FLICK_UP_AND_DOWN_TO_ADJUST_THE_POSITION_T_TTS");
+}
+
+/******************* generate_role_trait *******************/
+
+class RoleTraitFixture : public ReadingMaterialTraitFixture {
+public:
+       void RunTest(const char *string) {
+               std::unique_ptr<char, std::function<void(void*)>>
+                       ret(generate_role_trait(m_composer.get()), free);
+               EXPECT_STREQ(ret.get(), string);
+       }
+};
+
+TEST_F(RoleTraitFixture, InvalidRoleNoRoleName) {
+       GetReadingComposerObject(ATSPI_ROLE_INVALID);
+       RunTest("");
+}
+
+TEST_F(RoleTraitFixture, InvalidRoleWithRoleName) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_ACCELERATOR_LABEL);
+       const char *random = "1lkj45zx0c9v8";
+       composer->localized_role_name = const_cast<char*>(random);
+       RunTest(random);
+}
+
+TEST_F(RoleTraitFixture, EntryOrPasswordTextNoParent) {
+       GetReadingComposerObject(ATSPI_ROLE_PASSWORD_TEXT);
+       RunTest("IDS_TPLATFORM_BODY_EDIT_FIELD_M_NOUN_T_TTS");
+}
+
+TEST_F(RoleTraitFixture, FocusedEntryOrPasswordTextWithParentButton) {
+       NewParentObject(ATSPI_ROLE_SPIN_BUTTON);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_PASSWORD_TEXT);
+       composer->states = (1ll << ATSPI_STATE_FOCUSED);
+       RunTest("");
+}
+
+TEST_F(RoleTraitFixture, ComboBox) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_COMBO_BOX);
+       composer->child_count = 2;
+       RunTest("IDS_ACCS_BODY_DROPDOWN_LIST_TTS IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS");
+}
+
+TEST_F(RoleTraitFixture, GlassPane) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_GLASS_PANE);
+       composer->child_count = 2;
+       RunTest("IDS_ACCS_BODY_DROPDOWN_LIST_TTS IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS");
+}
+
+TEST_F(RoleTraitFixture, ListItemParentNotAnimated) {
+       NewParentObject();
+       GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       RunTest("");
+}
+
+TEST_F(RoleTraitFixture, ListItemParentIsAnimated) {
+       NewParentObject();
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->parent_states = (1ll << ATSPI_STATE_ANIMATED);
+       RunTest("IDS_GALLERY_OPT_REORDER , IDS_ACCS_BODY_BUTTON_TTS");
+}
+
+TEST_F(RoleTraitFixture, PushButton) {
+       GetReadingComposerObject(ATSPI_ROLE_PUSH_BUTTON);
+       RunTest("IDS_ACCS_BODY_BUTTON_TTS");
+}
+
+TEST_F(RoleTraitFixture, ProgressBarZeroValue) {
+       GetReadingComposerObject(ATSPI_ROLE_PROGRESS_BAR);
+       RunTest("");
+}
+
+TEST_F(RoleTraitFixture, ProgressBarPositiveCurrentValue) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_PROGRESS_BAR);
+       composer->value = 1.0;
+       RunTest("IDS_GCTS_OPT_P1SS_PERCENT_TTS");
+}
+
+TEST_F(RoleTraitFixture, Slider) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_SLIDER);
+       const char *random = ";8429hasfd";
+       composer->localized_role_name = const_cast<char*>(random);
+       RunTest(random);
+}
+
+/******************* generate_state_traits *******************/
+
+class StateTraitFixture : public ReadingMaterialTraitFixture {
+public:
+       void RunTest(const char *string) {
+               std::unique_ptr<char, std::function<void(void*)>>
+                       ret(generate_state_trait(m_composer.get()), free);
+               EXPECT_STREQ(ret.get(), string);
+       }
+};
+
+TEST_F(StateTraitFixture, InvalidRole) {
+       GetReadingComposerObject();
+       RunTest("");
+}
+
+TEST_F(StateTraitFixture, ListItemParentIsNotTreeTable) {
+       NewParentObject(ATSPI_ROLE_INVALID);
+       GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       RunTest("");
+}
+
+TEST_F(StateTraitFixture, ListItemParentIsTreeTableNoSelected) {
+       NewParentObject(ATSPI_ROLE_TREE_TABLE);
+       GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       RunTest("");
+}
+
+TEST_F(StateTraitFixture, ListItemParentIsTreeTableIsSelected) {
+       NewParentObject(ATSPI_ROLE_TREE_TABLE);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_LIST_ITEM);
+       composer->states = (1ll << ATSPI_STATE_SELECTED);
+       RunTest("IDS_ACCS_BODY_SELECTED_TTS");
+}
+
+TEST_F(StateTraitFixture, CheckBoxOrRadioButtonNotChecked) {
+       NewParentObject(ATSPI_ROLE_INVALID);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_CHECK_BOX);
+       composer->states = (1ll << ATSPI_STATE_EDITABLE);
+       RunTest("");
+}
+
+TEST_F(StateTraitFixture, CheckBoxOrRadioButtonChecked) {
+       NewParentObject(ATSPI_ROLE_INVALID);
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_CHECK_BOX);
+       composer->states = (1ll << ATSPI_STATE_CHECKED);
+       RunTest("IDS_ACCS_BODY_SELECTED_TTS");
+}
+
+TEST_F(StateTraitFixture, CheckBoxOrRadioButtonParentIsColorChooser) {
+       NewParentObject(ATSPI_ROLE_COLOR_CHOOSER);
+       GetReadingComposerObject(ATSPI_ROLE_CHECK_BOX);
+       RunTest("");
+}
+
+TEST_F(StateTraitFixture, CheckBoxOrRadioButtonParentIsNotColorChooser) {
+       NewParentObject();
+       GetReadingComposerObject(ATSPI_ROLE_CHECK_BOX);
+       RunTest("IDS_ACCS_OPT_NOT_SELECTED_TTS");
+}
+
+TEST_F(StateTraitFixture, ToggleButtonChecked) {
+       auto composer = GetReadingComposerObject(ATSPI_ROLE_TOGGLE_BUTTON);
+       composer->states = (1ll << ATSPI_STATE_CHECKED);
+       RunTest("IDS_MSG_BODY_ON_T_TTS");
+}
+
+TEST_F(StateTraitFixture, ToggleButtonNotChecked) {
+       GetReadingComposerObject(ATSPI_ROLE_TOGGLE_BUTTON);
+       RunTest("IDS_STORYALBUM_BODY_OFF_T_TTS");
+}
+
+TEST_F(StateTraitFixture, RadioMenuItem) {
+       GetReadingComposerObject(ATSPI_ROLE_RADIO_MENU_ITEM);
+       RunTest("IDS_ACCS_BODY_SELECTED_TTS");
+}
+
+/******************* reading_composer_data_get  *******************/
+
+struct DataGetFixture : public ::testing::Test {
+       DEFINE_MOCKING(atspi_accessible_get_reading_material);
+};
+
+TEST(ApiDataGet, NullParam) {
+       EXPECT_EQ(reading_composer_data_get(nullptr), nullptr);
+}
+
+TEST_F(DataGetFixture, CallApi) {
+       AtspiAccessible *obj = (AtspiAccessible*)0xDEADBEEF;
+       ReadingComposerData *ret = (ReadingComposerData*)0xBEDDCAFE;
+       EXPECT_FUNCTION_CALL(m_atspi_accessible_get_reading_material, (obj, NULL)).WillOnce(Return(ret));
+       EXPECT_EQ(reading_composer_data_get(obj), ret);
+}
+
+/******************* reading_composer_description_get  *******************/
+
+TEST(ApiDescGet, NullParam) {
+       EXPECT_EQ(reading_composer_description_get(nullptr), nullptr);
+}
+
+/******************* reading_composer_extended_description_get  *******************/
+
+TEST(ApiExtendedDescGet, NullParam) {
+       EXPECT_EQ(reading_composer_extended_description_get(nullptr), nullptr);
+}
+
+/******************* reading_composer_data_free  *******************/
+
+TEST(ApiDataFree, NullParam) {
+       ASSERT_EXIT((reading_composer_data_free(nullptr),exit(0)), ::testing::ExitedWithCode(0), ".*");
+}
+
diff --git a/tests2/reading_composer.hpp b/tests2/reading_composer.hpp
new file mode 100644 (file)
index 0000000..966845c
--- /dev/null
@@ -0,0 +1,54 @@
+#pragma once
+
+#define DEFINE_MOCKING(mock_name) StrictMock<mock_ ## mock_name> m_ ## mock_name
+
+#include <memory>
+
+#include "wrappers/mocked_reading_composer.h"
+#include "wrappers/mocked_external.h"
+
+using ::testing::StrictMock;
+
+using ::testing::DoAll;
+using ::testing::Invoke;
+using ::testing::Return;
+using ::testing::SetArgPointee;
+using ::testing::StrEq;
+using ::testing::_;
+
+class ReadingMaterialTraitFixture : public ::testing::Test {
+public:
+       DEFINE_MOCKING(get_accuracy);
+
+       AtspiAccessible *NewParentObject(AtspiRole role = ATSPI_ROLE_INVALID) {
+               m_composer->parent = (AtspiAccessible*) 0xdeadbeef;
+               m_composer->parent_role = role;
+               return m_composer->parent;
+       }
+
+       AtspiAccessible *GetParentObject() {
+               return m_composer->parent;
+       }
+
+       AtspiRole GetParentRole() {
+               return m_composer->parent_role;
+       }
+
+       void NewReadingComposerDataObject() {
+               m_composer = std::unique_ptr<ReadingComposerData>(new ReadingComposerData);
+               memset(m_composer.get(), 0, sizeof(ReadingComposerData));
+       }
+
+       void SetUp() {
+               NewReadingComposerDataObject();
+       }
+
+       ReadingComposerData* GetReadingComposerObject(AtspiRole role = ATSPI_ROLE_INVALID) {
+               m_composer->role = role;
+               return m_composer.get();
+       }
+
+protected:
+       std::unique_ptr<ReadingComposerData, std::function<void(ReadingComposerData*)> > m_composer;
+};
+
index c4098586c9c9dab08942f4cbf9005076037ec885..eeb4c7eeadda82e36b3e3fdf476fd3e1f02e4149 100644 (file)
@@ -1,7 +1,13 @@
 #include "mocked_reading_composer.h"
 
+IMPLEMENT_FUNCTION_MOCK2(mock_add_slider_description, add_slider_description, void(Eina_Strbuf *, AtspiAccessibleReadingMaterial *));
 IMPLEMENT_FUNCTION_MOCK2(mock_cycle_detection_check_if_in_cycle, cycle_detection_check_if_in_cycle, Eina_Bool(cycle_detection_data *, const void *));
 IMPLEMENT_FUNCTION_MOCK2(mock_cycle_detection_initialize, cycle_detection_initialize, void(cycle_detection_data *, const void *));
+IMPLEMENT_FUNCTION_MOCK1(mock_display_info_about_object, display_info_about_object, void(AtspiAccessibleReadingMaterial *));
+IMPLEMENT_FUNCTION_MOCK1(mock_generate_description_from_relation_object, generate_description_from_relation_object, char *(AtspiAccessibleReadingMaterial *));
+IMPLEMENT_FUNCTION_MOCK1(mock_generate_description_trait, generate_description_trait, char *(AtspiAccessibleReadingMaterial *));
+IMPLEMENT_FUNCTION_MOCK1(mock_generate_role_trait, generate_role_trait, char *(AtspiAccessibleReadingMaterial *));
+IMPLEMENT_FUNCTION_MOCK1(mock_generate_state_trait, generate_state_trait, char *(AtspiAccessibleReadingMaterial *));
 IMPLEMENT_FUNCTION_MOCK2(mock_get_accuracy, get_accuracy, int(double, int));
 IMPLEMENT_FUNCTION_MOCK1(mock_get_objects_attributes, get_objects_attributes, unsigned short(AtspiAccessible *));
 IMPLEMENT_FUNCTION_MOCK1(mock_object_has_defunct_state, object_has_defunct_state, Eina_Bool(AtspiAccessible *));
@@ -12,6 +18,8 @@ IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_data_get, reading_composer_data_g
 IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_description_get, reading_composer_description_get, char *(ReadingComposerData *));
 IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_extended_description_get, reading_composer_extended_description_get, char *(ReadingComposerData *));
 IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_name_get, reading_composer_name_get, char *(AtspiAccessible *));
+IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_reading_attribute_get, reading_composer_reading_attribute_get, unsigned short(AtspiAccessibleReadingMaterial *));
+IMPLEMENT_FUNCTION_MOCK1(mock_reading_composer_reading_material_free, reading_composer_reading_material_free, void(AtspiAccessibleReadingMaterial *));
 IMPLEMENT_FUNCTION_MOCK0(mock_utils_a11y_bus_connection_get, utils_a11y_bus_connection_get, Eldbus_Connection *());
 IMPLEMENT_FUNCTION_MOCK1(mock_utils_a11y_bus_connection_set, utils_a11y_bus_connection_set, void(Eldbus_Connection *));
 IMPLEMENT_FUNCTION_MOCK1(mock_utils_enum_to_string, utils_enum_to_string, const char *(Gesture));
index 8aa28575e7877f5f1c272e8bad6b01e5e7979ad1..1cb7ed1ead8dbae05021b3619642fb1a7197f2af 100644 (file)
@@ -10,8 +10,22 @@ extern "C" {
 }
 #include <cmock/cmock.h>
 
+extern "C" void add_slider_description(Eina_Strbuf * buf, AtspiAccessibleReadingMaterial * rm);
+extern "C" void display_info_about_object(AtspiAccessibleReadingMaterial * rm);
+extern "C" char * generate_description_from_relation_object(AtspiAccessibleReadingMaterial * rm);
+extern "C" char * generate_description_trait(AtspiAccessibleReadingMaterial * rm);
+extern "C" char * generate_role_trait(AtspiAccessibleReadingMaterial * rm);
+extern "C" char * generate_state_trait(AtspiAccessibleReadingMaterial * rm);
+extern "C" unsigned short reading_composer_reading_attribute_get(AtspiAccessibleReadingMaterial * rm);
+extern "C" void reading_composer_reading_material_free(AtspiAccessibleReadingMaterial * rm);
+DECLARE_FUNCTION_MOCK2(mock_add_slider_description, add_slider_description, void(Eina_Strbuf *, AtspiAccessibleReadingMaterial *));
 DECLARE_FUNCTION_MOCK2(mock_cycle_detection_check_if_in_cycle, cycle_detection_check_if_in_cycle, Eina_Bool(cycle_detection_data *, const void *));
 DECLARE_FUNCTION_MOCK2(mock_cycle_detection_initialize, cycle_detection_initialize, void(cycle_detection_data *, const void *));
+DECLARE_FUNCTION_MOCK1(mock_display_info_about_object, display_info_about_object, void(AtspiAccessibleReadingMaterial *));
+DECLARE_FUNCTION_MOCK1(mock_generate_description_from_relation_object, generate_description_from_relation_object, char *(AtspiAccessibleReadingMaterial *));
+DECLARE_FUNCTION_MOCK1(mock_generate_description_trait, generate_description_trait, char *(AtspiAccessibleReadingMaterial *));
+DECLARE_FUNCTION_MOCK1(mock_generate_role_trait, generate_role_trait, char *(AtspiAccessibleReadingMaterial *));
+DECLARE_FUNCTION_MOCK1(mock_generate_state_trait, generate_state_trait, char *(AtspiAccessibleReadingMaterial *));
 DECLARE_FUNCTION_MOCK2(mock_get_accuracy, get_accuracy, int(double, int));
 DECLARE_FUNCTION_MOCK1(mock_get_objects_attributes, get_objects_attributes, unsigned short(AtspiAccessible *));
 DECLARE_FUNCTION_MOCK1(mock_object_has_defunct_state, object_has_defunct_state, Eina_Bool(AtspiAccessible *));
@@ -22,6 +36,8 @@ DECLARE_FUNCTION_MOCK1(mock_reading_composer_data_get, reading_composer_data_get
 DECLARE_FUNCTION_MOCK1(mock_reading_composer_description_get, reading_composer_description_get, char *(ReadingComposerData *));
 DECLARE_FUNCTION_MOCK1(mock_reading_composer_extended_description_get, reading_composer_extended_description_get, char *(ReadingComposerData *));
 DECLARE_FUNCTION_MOCK1(mock_reading_composer_name_get, reading_composer_name_get, char *(AtspiAccessible *));
+DECLARE_FUNCTION_MOCK1(mock_reading_composer_reading_attribute_get, reading_composer_reading_attribute_get, unsigned short(AtspiAccessibleReadingMaterial *));
+DECLARE_FUNCTION_MOCK1(mock_reading_composer_reading_material_free, reading_composer_reading_material_free, void(AtspiAccessibleReadingMaterial *));
 DECLARE_FUNCTION_MOCK0(mock_utils_a11y_bus_connection_get, utils_a11y_bus_connection_get, Eldbus_Connection *());
 DECLARE_FUNCTION_MOCK1(mock_utils_a11y_bus_connection_set, utils_a11y_bus_connection_set, void(Eldbus_Connection *));
 DECLARE_FUNCTION_MOCK1(mock_utils_enum_to_string, utils_enum_to_string, const char *(Gesture));