Changeset 163779 in webkit


Ignore:
Timestamp:
Feb 10, 2014 5:04:58 AM (10 years ago)
Author:
commit-queue@webkit.org
Message:

[EFL] Spelling unit tests should use ecore_main_loop_iterate()
https://bugs.webkit.org/show_bug.cgi?id=127427

Patch by Lukasz Bialek <l.bialek@samsung.com> on 2014-02-10
Reviewed by Gyuyoung Kim.

r148670 gets rid of EFL's idlers in a favor of timers to load languages.
ecore_main_loop_iterate() can be used now.

Add function that loads spellchecking languages and waits for loading
to be finished:

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

(EWK2UnitTest::EWK2UnitTestBase::waitForLanguageLoading):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:

Apply added function to tests that should wait for languages to be loaded:

  • UIProcess/API/efl/tests/test_ewk2_text_checker.cpp:

(EWK2TextCheckerTest::resetCallbacksExecutionStats):
(TEST_F):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r163749 r163779  
     12014-02-10  Lukasz Bialek  <l.bialek@samsung.com>
     2
     3        [EFL] Spelling unit tests should use ecore_main_loop_iterate()
     4        https://bugs.webkit.org/show_bug.cgi?id=127427
     5
     6        Reviewed by Gyuyoung Kim.
     7
     8        r148670 gets rid of EFL's idlers in a favor of timers to load languages.
     9        ecore_main_loop_iterate() can be used now.
     10
     11        Add function that loads spellchecking languages and waits for loading
     12        to be finished:
     13        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
     14        (EWK2UnitTest::EWK2UnitTestBase::waitForLanguageLoading):
     15        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
     16
     17        Apply added function to tests that should wait for languages to be loaded:
     18        * UIProcess/API/efl/tests/test_ewk2_text_checker.cpp:
     19        (EWK2TextCheckerTest::resetCallbacksExecutionStats):
     20        (TEST_F):
     21
    1222014-02-09  Carlos Garnacho  <carlosg@gnome.org>
    223
  • trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp

    r163079 r163779  
    236236}
    237237
     238Eina_List* EWK2UnitTestBase::waitUntilSpellingLanguagesLoaded(unsigned expectedLanguageCount, double timeoutValue)
     239{
     240    // Keep waiting until all languages has been loaded or leave afqter timeout.
     241    // Languages are being loaded in the timer, we have to wait for them.
     242    Eina_List* loadedLanguages = nullptr;
     243    void* actual = nullptr;
     244
     245    CallbackDataExpectedValue<bool> data(true, timeoutValue);
     246    while ((eina_list_count(loadedLanguages) != expectedLanguageCount) && !data.isDone()) {
     247        if (loadedLanguages) {
     248            // List has to be freed before acquiring new one.
     249            actual = nullptr;
     250            EINA_LIST_FREE(loadedLanguages, actual)
     251                eina_stringshare_del(static_cast<const char*>(actual));
     252        }
     253
     254        loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     255        ecore_main_loop_iterate();
     256    }
     257
     258    return loadedLanguages;
     259}
     260
    238261void EWK2UnitTestBase::mouseClick(int x, int y, int button)
    239262{
  • trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h

    r155163 r163779  
    5252    bool waitUntilURLChangedTo(const char* expectedURL, double timeoutSeconds = defaultTimeoutSeconds);
    5353    bool waitUntilTrue(bool &flag, double timeoutSeconds = defaultTimeoutSeconds);
     54    Eina_List* waitUntilSpellingLanguagesLoaded(unsigned expectedLanguageCount, double timeoutValue = defaultTimeoutSeconds);
    5455
    5556    void mouseClick(int x, int y, int button = 1 /*Left*/);
  • trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_text_checker.cpp

    r153419 r163779  
    4343static const Evas_Object* defaultView = 0;
    4444static bool isSettingEnabled = false;
    45 static Ecore_Timer* timeoutTimer = 0;
    4645static double defaultTimeoutInSeconds = 0.5;
    4746
     
    7776        callbacksExecutionStats.wordLearn = false;
    7877        callbacksExecutionStats.wordIgnore = false;
    79     }
    80 
    81     /**
    82      * Handle the timeout, it may happen for the asynchronous tests.
    83      *
    84      * @internal
    85      *
    86      * @return the ECORE_CALLBACK_CANCEL flag to delete the timer automatically
    87      */
    88     static Eina_Bool onTimeout(void*)
    89     {
    90         ecore_main_loop_quit();
    91         return ECORE_CALLBACK_CANCEL;
    9278    }
    9379
     
    506492{
    507493    ewk_text_checker_continuous_spell_checking_enabled_set(false);
    508     // The language is being loaded on the idler, wait for it.
    509     timeoutTimer = ecore_timer_add(defaultTimeoutInSeconds, onTimeout, 0);
    510     ecore_main_loop_begin();
    511 
    512     Eina_List* loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     494
     495    Eina_List* loadedLanguages = waitUntilSpellingLanguagesLoaded(1, defaultTimeoutInSeconds);
    513496    // No dictionary is available/installed.
    514497    if (!loadedLanguages)
     
    523506    // Repeat the checking when continuous spell checking setting is on.
    524507    ewk_text_checker_continuous_spell_checking_enabled_set(true);
    525     timeoutTimer = ecore_timer_add(defaultTimeoutInSeconds, onTimeout, 0);
    526     ecore_main_loop_begin();
    527 
    528     loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     508
     509    loadedLanguages = waitUntilSpellingLanguagesLoaded(1, defaultTimeoutInSeconds);
    529510    if (!loadedLanguages)
    530511        return;
     
    665646    ewk_text_checker_spell_checking_languages_set(languages.toString().utf8().data());
    666647
    667     // Languages are being loaded on the idler, wait for them.
    668     timeoutTimer = ecore_timer_add(defaultTimeoutInSeconds, onTimeout, 0);
    669     ecore_main_loop_begin();
    670 
    671648    // Get the languages in use.
    672     Eina_List* loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     649    Eina_List* loadedLanguages = waitUntilSpellingLanguagesLoaded(eina_list_count(availableLanguages), defaultTimeoutInSeconds);
    673650    ASSERT_EQ(eina_list_count(loadedLanguages), eina_list_count(availableLanguages));
    674651
     
    699676    ewk_text_checker_spell_checking_languages_set(0);
    700677
    701     // Languages are being loaded on the idler, wait for them.
    702     timeoutTimer = ecore_timer_add(defaultTimeoutInSeconds, onTimeout, 0);
    703     ecore_main_loop_begin();
    704 
    705     Eina_List* loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     678    Eina_List* loadedLanguages = waitUntilSpellingLanguagesLoaded(1, defaultTimeoutInSeconds);
    706679    // No dictionary is available/installed or the SPELLCHECK macro is disabled.
    707680    if (!loadedLanguages)
     
    735708    ewk_text_checker_spell_checking_languages_set(languages.toString().utf8().data());
    736709
    737     timeoutTimer = ecore_timer_add(defaultTimeoutInSeconds, onTimeout, 0);
    738     ecore_main_loop_begin();
    739 
    740     loadedLanguages = ewk_text_checker_spell_checking_languages_get();
     710    loadedLanguages = waitUntilSpellingLanguagesLoaded(2, defaultTimeoutInSeconds);
    741711    ASSERT_EQ(2, eina_list_count(loadedLanguages));
    742712
Note: See TracChangeset for help on using the changeset viewer.