Changeset 129011 in webkit
- Timestamp:
- Sep 19, 2012 9:49:05 AM (12 years ago)
- Location:
- trunk/Source/WebKit/efl
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/efl/ChangeLog
r128995 r129011 1 2012-09-19 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r128995. 4 http://trac.webkit.org/changeset/128995 5 https://bugs.webkit.org/show_bug.cgi?id=97114 6 7 Causes the api tests to segfault. (Requested by rakuco on 8 #webkit). 9 10 * tests/UnitTestUtils/EWKTestBase.cpp: 11 (EWKUnitTests::EWKTestBase::init): 12 (EWKUnitTests::EWKTestBase::shutdownAll): 13 (EWKUnitTests::EWKTestBase::startTest): 14 (EWKUnitTests::EWKTestBase::endTest): 15 (EWKUnitTests::EWKTestBase::createTest): 16 (EWKUnitTests): 17 (EWKUnitTests::EWKTestBase::runTest): 18 * tests/UnitTestUtils/EWKTestBase.h: 19 (EWKUnitTests): 20 (EWKTestBase): 21 * tests/UnitTestUtils/EWKTestView.cpp: 22 (EWKUnitTests::EWKTestEcoreEvas::EWKTestEcoreEvas): 23 (EWKUnitTests::EWKTestEcoreEvas::evas): 24 (EWKUnitTests): 25 (EWKUnitTests::EWKTestEcoreEvas::show): 26 (EWKUnitTests::EWKTestView::EWKTestView): 27 (EWKUnitTests::EWKTestView::init): 28 (EWKUnitTests::EWKTestView::show): 29 (EWKUnitTests::EWKTestView::mainFrame): 30 (EWKUnitTests::EWKTestView::evas): 31 (EWKUnitTests::EWKTestView::bindEvents): 32 * tests/UnitTestUtils/EWKTestView.h: 33 (EWKTestEcoreEvas): 34 (EWKUnitTests): 35 (EWKTestView): 36 * tests/test_ewk_view.cpp: 37 (ewkViewEditableGetCb): 38 (TEST): 39 (ewkViewUriGetCb): 40 * tests/test_runner.cpp: 41 (main): 42 1 43 2012-09-19 Krzysztof Czech <k.czech@samsung.com> 2 44 -
trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp
r128995 r129011 20 20 #include "EWKTestBase.h" 21 21 22 #include "EWKTestConfig.h" 23 #include "EWKTestView.h" 22 24 #include <EWebKit.h> 25 23 26 #include <Ecore.h> 24 27 #include <Edje.h> … … 28 31 namespace EWKUnitTests { 29 32 30 EWKTestBase::EWKTestBase() 31 : m_ewkTestView(0) 33 bool EWKTestBase::init() 32 34 { 35 if (!ecore_evas_init()) 36 return false; 37 38 if (!edje_init()) { 39 ecore_evas_shutdown(); 40 return false; 41 } 42 43 int ret = ewk_init(); 44 const char* proxyUri = getenv("http_proxy"); 45 46 if (ret && proxyUri) 47 ewk_network_proxy_uri_set(proxyUri); 48 49 return ret; 33 50 } 34 51 35 Evas_Object* EWKTestBase::webView()52 void EWKTestBase::shutdownAll() 36 53 { 37 return m_ewkTestView->webView(); 54 int count = 0; 55 56 while ((count = ecore_evas_shutdown()) > 0) { } 57 while ((count = edje_shutdown()) > 0) { } 58 while ((count = ewk_shutdown()) > 0) { } 38 59 } 39 60 40 void EWKTestBase:: SetUp()61 void EWKTestBase::startTest() 41 62 { 42 ASSERT_GT(ecore_evas_init(), 0); 43 ASSERT_GT(ewk_init(), 0); 44 45 const char* proxyUrl = getenv("http_proxy"); 46 if (proxyUrl) 47 ewk_network_proxy_uri_set(proxyUrl); 48 49 m_ewkTestView = new EWKTestView(); 63 ecore_main_loop_begin(); 50 64 } 51 65 52 void EWKTestBase::TearDown() 53 { 54 delete m_ewkTestView; 55 ecore_evas_shutdown(); 56 ewk_shutdown(); 57 } 58 59 void EWKTestBase::onLoadFinished(void* data, Evas_Object* webView, void* eventInfo) 66 void EWKTestBase::endTest() 60 67 { 61 68 ecore_main_loop_quit(); 62 69 } 63 70 64 void EWKTestBase::waitUntilLoadFinished()71 bool EWKTestBase::createTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) 65 72 { 66 evas_object_smart_callback_add(webView(), "load,finished", onLoadFinished, 0); 67 ecore_main_loop_begin(); 68 evas_object_smart_callback_del(webView(), "load,finished", onLoadFinished); 73 EFL_INIT_RET(); 74 75 EWKTestEcoreEvas evas(useX11Window); 76 if (!evas.evas()) 77 return false; 78 evas.show(); 79 80 EWKTestView view(evas.evas(), url); 81 if (!view.init()) 82 return false; 83 84 view.bindEvents(event_callback, event_name, event_data); 85 view.show(); 86 87 START_TEST(); 88 89 return true; 69 90 } 70 91 71 void EWKTestBase::loadUrl(const char* url)92 bool EWKTestBase::runTest(void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) 72 93 { 73 ASSERT_TRUE(m_ewkTestView->init(useX11Window)); 74 ASSERT_TRUE(ewk_view_uri_set(webView(), url)); 75 waitUntilLoadFinished(); 94 return createTest(Config::defaultTestPage, event_callback, event_name, event_data); 95 } 96 97 bool EWKTestBase::runTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) 98 { 99 return createTest(url, event_callback, event_name, event_data); 76 100 } 77 101 -
trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h
r128995 r129011 20 20 #define EWKTestBase_h 21 21 22 #include "EWKTestConfig.h" 23 #include "EWKTestView.h" 22 #include <Evas.h> 24 23 #include <gtest/gtest.h> 24 25 #define RUN_TEST(args...) \ 26 do { \ 27 ASSERT_EQ(true, EWKTestBase::runTest(args)); \ 28 } while (0) 29 30 #define START_TEST() \ 31 do { \ 32 EWKTestBase::startTest(); \ 33 } while (0) 34 35 #define END_TEST() \ 36 do { \ 37 EWKTestBase::endTest(); \ 38 } while (0) 39 40 #define EFL_INIT_RET() \ 41 do { \ 42 if (!EWKTestBase::init()) \ 43 return false; \ 44 } while (0) 45 46 #define EFL_INIT() \ 47 do { \ 48 EWKTestBase::init(); \ 49 } while (0) 25 50 26 51 namespace EWKUnitTests { 27 52 28 class EWKTestBase: public ::testing::Test { 53 class EWKTestBase { 54 static bool createTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data); 29 55 public: 56 static bool init(); 57 static void shutdownAll(); 58 static void startTest(); 59 static void endTest(); 60 61 static bool runTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name = "load,finished", void* event_data = 0); 62 static bool runTest(void (*event_callback)(void*, Evas_Object*, void*), const char* event_name = "load,finished", void* event_data = 0); 63 30 64 static int useX11Window; 31 32 static void onLoadFinished(void* data, Evas_Object* webView, void* eventInfo);33 34 Evas_Object* webView();35 protected:36 EWKTestBase();37 38 virtual void SetUp();39 virtual void TearDown();40 41 void loadUrl(const char* url = Config::defaultTestPage);42 void waitUntilLoadFinished();43 44 EWKTestView* m_ewkTestView;45 65 }; 46 66 -
trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp
r128995 r129011 20 20 #include "EWKTestView.h" 21 21 22 #include "EWKTestConfig.h" 22 23 #include <EWebKit.h> 23 #include <wtf/NullPtr.h> 24 24 25 #include <wtf/PassOwnPtr.h> 25 26 #include <wtf/RefPtr.h> … … 27 28 namespace EWKUnitTests { 28 29 29 EWKTestView::EWKTestView() 30 EWKTestEcoreEvas::EWKTestEcoreEvas(int useX11Window) 31 { 32 if (useX11Window) 33 m_ecoreEvas = adoptPtr(ecore_evas_new(0, 0, 0, Config::defaultViewWidth, Config::defaultViewHeight, 0)); 34 else 35 m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(Config::defaultViewWidth, Config::defaultViewHeight)); 36 } 37 38 EWKTestEcoreEvas::EWKTestEcoreEvas(const char* engine_name, int viewport_x, int viewport_y, int viewport_w, int viewport_h, const char* extra_options, int useX11Window) 39 { 40 if (useX11Window) 41 m_ecoreEvas = adoptPtr(ecore_evas_new(engine_name, viewport_x, viewport_y, viewport_w, viewport_h, extra_options)); 42 else 43 m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(viewport_x, viewport_y)); 44 } 45 46 Evas* EWKTestEcoreEvas::evas() 47 { 48 if (m_ecoreEvas.get()) 49 return ecore_evas_get(m_ecoreEvas.get()); 50 return 0; 51 } 52 53 void EWKTestEcoreEvas::show() 54 { 55 if (m_ecoreEvas.get()) 56 ecore_evas_show(m_ecoreEvas.get()); 57 } 58 59 EWKTestView::EWKTestView(Evas* evas) 60 : m_evas(evas) 61 , m_url(Config::defaultTestPage) 62 , m_defaultViewType(TiledView) 63 , m_width(Config::defaultViewWidth) 64 , m_height(Config::defaultViewHeight) 30 65 { 31 66 } 32 67 33 bool EWKTestView::init(int useX11Window, EwkViewType testViewType, int width, int height) 68 EWKTestView::EWKTestView(Evas* evas, const char* url) 69 : m_evas(evas) 70 , m_url(url) 71 , m_defaultViewType(TiledView) 72 , m_width(Config::defaultViewWidth) 73 , m_height(Config::defaultViewHeight) 34 74 { 35 m_webView = nullptr; 75 } 36 76 37 if (useX11Window) 38 m_ecoreEvas = adoptPtr(ecore_evas_new(0, 0, 0, width, height, 0)); 39 else 40 m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(width, height)); 77 EWKTestView::EWKTestView(Evas* evas, EwkViewType type, const char* url) 78 : m_evas(evas) 79 , m_url(url) 80 , m_defaultViewType(type) 81 , m_width(Config::defaultViewWidth) 82 , m_height(Config::defaultViewHeight) 83 { 84 } 41 85 42 if (!m_ecoreEvas) 86 EWKTestView::EWKTestView(Evas* evas, EwkViewType type, const char* url, int width, int height) 87 : m_evas(evas) 88 , m_url(url) 89 , m_defaultViewType(type) 90 , m_width(width) 91 , m_height(height) 92 { 93 } 94 95 bool EWKTestView::init() 96 { 97 if (!m_evas || m_url.empty()) 43 98 return false; 44 99 45 ecore_evas_show(m_ecoreEvas.get()); 46 Evas* evas = ecore_evas_get(m_ecoreEvas.get()); 47 if (!evas) 48 return false; 49 50 switch (testViewType) { 100 switch (m_defaultViewType) { 51 101 case SingleView: 52 m_webView = adoptRef(ewk_view_single_add( evas));102 m_webView = adoptRef(ewk_view_single_add(m_evas)); 53 103 break; 54 104 55 105 case TiledView: 56 m_webView = adoptRef(ewk_view_tiled_add( evas));106 m_webView = adoptRef(ewk_view_tiled_add(m_evas)); 57 107 break; 58 108 } 59 109 60 if (!m_webView )110 if (!m_webView.get()) 61 111 return false; 62 112 63 113 ewk_view_theme_set(m_webView.get(), Config::defaultThemePath); 114 ewk_view_uri_set(m_webView.get(), m_url.c_str()); 115 } 64 116 65 evas_object_resize(m_webView.get(), width, height); 117 void EWKTestView::show() 118 { 119 if (!m_webView.get()) 120 return; 121 evas_object_resize(m_webView.get(), m_width, m_height); 66 122 evas_object_show(m_webView.get()); 67 123 evas_object_focus_set(m_webView.get(), EINA_TRUE); 68 return true; 124 } 125 126 Evas_Object* EWKTestView::mainFrame() 127 { 128 if (m_webView.get()) 129 return ewk_view_frame_main_get(m_webView.get()); 130 return 0; 131 } 132 133 Evas* EWKTestView::evas() 134 { 135 if (m_webView.get()) 136 return evas_object_evas_get(m_webView.get()); 137 return 0; 138 } 139 140 void EWKTestView::bindEvents(void (*callback)(void*, Evas_Object*, void*), const char* eventName, void* ptr) 141 { 142 if (!m_webView.get()) 143 return; 144 145 evas_object_smart_callback_del(m_webView.get(), eventName, callback); 146 evas_object_smart_callback_add(m_webView.get(), eventName, callback, ptr); 69 147 } 70 148 -
trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h
r128995 r129011 20 20 #define EWKTestView_h 21 21 22 #include "EWKTestConfig.h"23 22 #include <Ecore_Evas.h> 24 23 #include <Evas.h> 24 #include <string> 25 25 #include <wtf/OwnPtr.h> 26 26 #include <wtf/efl/RefPtrEfl.h> … … 28 28 namespace EWKUnitTests { 29 29 30 class EWKTestEcoreEvas { 31 public: 32 EWKTestEcoreEvas(int useX11Window); 33 EWKTestEcoreEvas(const char* engine_name, int viewport_x, int viewport_y, int viewport_w, int viewport_h, const char* extra_options, int useX11Window); 34 35 Evas* evas(); 36 void show(); 37 38 private: 39 OwnPtr<Ecore_Evas> m_ecoreEvas; 40 }; 41 30 42 class EWKTestView { 31 43 public: 32 44 enum EwkViewType { 33 45 SingleView = 0, 34 TiledView 46 TiledView, 35 47 }; 36 48 37 EWKTestView(); 49 explicit EWKTestView(Evas*); 50 EWKTestView(Evas*, const char* url); 51 EWKTestView(Evas*, EwkViewType, const char* url); 52 EWKTestView(Evas*, EwkViewType, const char* url, int width, int height); 38 53 39 54 Evas_Object* webView() { return m_webView.get(); } 55 Evas_Object* mainFrame(); 56 Evas* evas(); 57 void show(); 40 58 41 bool init(int useX11Window = 0, EwkViewType testViewType = TiledView, int width = Config::defaultViewWidth, int height = Config::defaultViewHeight); 59 bool init(); 60 void bindEvents(void (*callback)(void*, Evas_Object*, void*), const char* eventName, void* ptr); 61 42 62 private: 43 63 EWKTestView(const EWKTestView&); 44 EWKTestView &operator=(const EWKTestView&);64 EWKTestView operator=(const EWKTestView&); 45 65 46 OwnPtr<Ecore_Evas> m_ecoreEvas;66 Evas* m_evas; 47 67 RefPtr<Evas_Object> m_webView; 68 69 int m_width, m_height; 70 EwkViewType m_defaultViewType; 71 std::string m_url; 48 72 }; 49 73 -
trunk/Source/WebKit/efl/tests/test_ewk_view.cpp
r128995 r129011 20 20 21 21 #include "UnitTestUtils/EWKTestBase.h" 22 #include "UnitTestUtils/EWKTestConfig.h"23 22 #include <EWebKit.h> 24 #include <Ecore.h> 25 #include <wtf/OwnPtr.h> 26 #include <wtf/PassOwnPtr.h> 23 #include <gtest/gtest.h> 27 24 28 25 using namespace EWKUnitTests; … … 31 28 * @brief Checking whether function properly returns correct value. 32 29 */ 33 TEST_F(EWKTestBase, ewk_view_editable_get)30 static void ewkViewEditableGetCb(void* eventInfo, Evas_Object* o, void* data) 34 31 { 35 loadUrl(); 36 ewk_view_editable_set(webView(), EINA_FALSE); 37 ASSERT_FALSE(ewk_view_editable_get(webView())); 32 ewk_view_editable_set(o, EINA_FALSE); 33 EXPECT_EQ(EINA_FALSE, ewk_view_editable_get(o)); 34 END_TEST(); 35 } 36 37 TEST(test_ewk_view, ewk_view_editable_get) 38 { 39 RUN_TEST(ewkViewEditableGetCb); 38 40 } 39 41 … … 41 43 * @brief Checking whether function returns correct uri string. 42 44 */ 43 TEST_F(EWKTestBase, ewk_view_uri_get)45 static void ewkViewUriGetCb(void* eventInfo, Evas_Object* o, void* data) 44 46 { 45 loadUrl();46 E XPECT_STREQ(ewk_view_uri_get(webView()), Config::defaultTestPage);47 EXPECT_STREQ("http://www.webkit.org/", ewk_view_uri_get(o)); 48 END_TEST(); 47 49 } 50 51 TEST(test_ewk_view, ewk_view_uri_get) 52 { 53 RUN_TEST("http://www.webkit.org", ewkViewUriGetCb); 54 } -
trunk/Source/WebKit/efl/tests/test_runner.cpp
r128995 r129011 17 17 */ 18 18 19 #include "config.h"20 21 19 #include "UnitTestUtils/EWKTestBase.h" 22 20 #include <getopt.h> … … 36 34 int main(int argc, char** argv) 37 35 { 36 atexit(EWKUnitTests::EWKTestBase::shutdownAll); 38 37 parseCustomArguments(argc, argv); 39 38 ::testing::InitGoogleTest(&argc, argv);
Note: See TracChangeset
for help on using the changeset viewer.