Changeset 163779 in webkit
- Timestamp:
- Feb 10, 2014 5:04:58 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r163749 r163779 1 2014-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 1 22 2014-02-09 Carlos Garnacho <carlosg@gnome.org> 2 23 -
trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp
r163079 r163779 236 236 } 237 237 238 Eina_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 238 261 void EWK2UnitTestBase::mouseClick(int x, int y, int button) 239 262 { -
trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h
r155163 r163779 52 52 bool waitUntilURLChangedTo(const char* expectedURL, double timeoutSeconds = defaultTimeoutSeconds); 53 53 bool waitUntilTrue(bool &flag, double timeoutSeconds = defaultTimeoutSeconds); 54 Eina_List* waitUntilSpellingLanguagesLoaded(unsigned expectedLanguageCount, double timeoutValue = defaultTimeoutSeconds); 54 55 55 56 void mouseClick(int x, int y, int button = 1 /*Left*/); -
trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_text_checker.cpp
r153419 r163779 43 43 static const Evas_Object* defaultView = 0; 44 44 static bool isSettingEnabled = false; 45 static Ecore_Timer* timeoutTimer = 0;46 45 static double defaultTimeoutInSeconds = 0.5; 47 46 … … 77 76 callbacksExecutionStats.wordLearn = false; 78 77 callbacksExecutionStats.wordIgnore = false; 79 }80 81 /**82 * Handle the timeout, it may happen for the asynchronous tests.83 *84 * @internal85 *86 * @return the ECORE_CALLBACK_CANCEL flag to delete the timer automatically87 */88 static Eina_Bool onTimeout(void*)89 {90 ecore_main_loop_quit();91 return ECORE_CALLBACK_CANCEL;92 78 } 93 79 … … 506 492 { 507 493 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); 513 496 // No dictionary is available/installed. 514 497 if (!loadedLanguages) … … 523 506 // Repeat the checking when continuous spell checking setting is on. 524 507 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); 529 510 if (!loadedLanguages) 530 511 return; … … 665 646 ewk_text_checker_spell_checking_languages_set(languages.toString().utf8().data()); 666 647 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 671 648 // 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); 673 650 ASSERT_EQ(eina_list_count(loadedLanguages), eina_list_count(availableLanguages)); 674 651 … … 699 676 ewk_text_checker_spell_checking_languages_set(0); 700 677 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); 706 679 // No dictionary is available/installed or the SPELLCHECK macro is disabled. 707 680 if (!loadedLanguages) … … 735 708 ewk_text_checker_spell_checking_languages_set(languages.toString().utf8().data()); 736 709 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); 741 711 ASSERT_EQ(2, eina_list_count(loadedLanguages)); 742 712
Note: See TracChangeset
for help on using the changeset viewer.