diff options
Diffstat (limited to 'Source/WebKit/efl/tests')
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp | 69 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h | 48 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.cpp | 47 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.h | 38 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp | 114 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h | 36 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/test_ewk_view.cpp | 58 | ||||
-rw-r--r-- | Source/WebKit/efl/tests/test_runner.cpp | 20 |
8 files changed, 173 insertions, 257 deletions
diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp index 2d3e2ae9e..7dff49f20 100644 --- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp @@ -19,84 +19,45 @@ #include "config.h" #include "EWKTestBase.h" -#include "EWKTestConfig.h" -#include "EWKTestView.h" +#include "EWKTestEnvironment.h" #include <EWebKit.h> - #include <Ecore.h> #include <Edje.h> -int EWKUnitTests::EWKTestBase::useX11Window; +extern EWKUnitTests::EWKTestEnvironment* environment; namespace EWKUnitTests { -bool EWKTestBase::init() +EWKTestBase::EWKTestBase() { - if (!ecore_evas_init()) - return false; - - if (!edje_init()) { - ecore_evas_shutdown(); - return false; - } - - int ret = ewk_init(); - const char* proxyUri = getenv("http_proxy"); - - if (ret && proxyUri) - ewk_network_proxy_uri_set(proxyUri); - - return ret; } -void EWKTestBase::shutdownAll() +Evas_Object* EWKTestBase::webView() { - int count = 0; - - while ((count = ecore_evas_shutdown()) > 0) { } - while ((count = edje_shutdown()) > 0) { } - while ((count = ewk_shutdown()) > 0) { } + return m_ewkTestView.webView(); } -void EWKTestBase::startTest() +void EWKTestBase::SetUp() { - ecore_main_loop_begin(); + ASSERT_TRUE(m_ewkTestView.init()); } -void EWKTestBase::endTest() +void EWKTestBase::onLoadFinished(void* data, Evas_Object* webView, void* eventInfo) { ecore_main_loop_quit(); } -bool EWKTestBase::createTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) -{ - EFL_INIT_RET(); - - EWKTestEcoreEvas evas(useX11Window); - if (!evas.evas()) - return false; - evas.show(); - - EWKTestView view(evas.evas(), url); - if (!view.init()) - return false; - - view.bindEvents(event_callback, event_name, event_data); - view.show(); - - START_TEST(); - - return true; -} - -bool EWKTestBase::runTest(void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) +void EWKTestBase::waitUntilLoadFinished() { - return createTest(Config::defaultTestPage, event_callback, event_name, event_data); + evas_object_smart_callback_add(webView(), "load,finished", onLoadFinished, 0); + ecore_main_loop_begin(); + evas_object_smart_callback_del(webView(), "load,finished", onLoadFinished); } -bool EWKTestBase::runTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data) +void EWKTestBase::loadUrl(const char* url) { - return createTest(url, event_callback, event_name, event_data); + ASSERT_TRUE(ewk_view_uri_set(webView(), url)); + waitUntilLoadFinished(); } } diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h index ec7513297..0e22351cb 100644 --- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h @@ -19,49 +19,25 @@ #ifndef EWKTestBase_h #define EWKTestBase_h -#include <Evas.h> +#include "EWKTestConfig.h" +#include "EWKTestView.h" #include <gtest/gtest.h> -#define RUN_TEST(args...) \ - do { \ - ASSERT_EQ(true, EWKTestBase::runTest(args)); \ - } while (0) - -#define START_TEST() \ - do { \ - EWKTestBase::startTest(); \ - } while (0) - -#define END_TEST() \ - do { \ - EWKTestBase::endTest(); \ - } while (0) - -#define EFL_INIT_RET() \ - do { \ - if (!EWKTestBase::init()) \ - return false; \ - } while (0) - -#define EFL_INIT() \ - do { \ - EWKTestBase::init(); \ - } while (0) - namespace EWKUnitTests { -class EWKTestBase { - static bool createTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data); +class EWKTestBase: public ::testing::Test { public: - static bool init(); - static void shutdownAll(); - static void startTest(); - static void endTest(); + static void onLoadFinished(void* data, Evas_Object* webView, void* eventInfo); + + Evas_Object* webView(); + virtual void SetUp(); +protected: + EWKTestBase(); - static bool runTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name = "load,finished", void* event_data = 0); - static bool runTest(void (*event_callback)(void*, Evas_Object*, void*), const char* event_name = "load,finished", void* event_data = 0); + void loadUrl(const char* url = Config::defaultTestPage); + void waitUntilLoadFinished(); - static int useX11Window; + EWKTestView m_ewkTestView; }; } diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.cpp b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.cpp new file mode 100644 index 000000000..6a1fea45b --- /dev/null +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.cpp @@ -0,0 +1,47 @@ +/* + Copyright (C) 2012 Samsung Electronics + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "config.h" +#include "EWKTestEnvironment.h" + +#include <EWebKit.h> +#include <Ecore.h> +#include <Edje.h> + +namespace EWKUnitTests { + +EWKTestEnvironment::EWKTestEnvironment(bool useX11Window) + : m_useX11Window(useX11Window) +{ +} + +void EWKTestEnvironment::SetUp() +{ + ASSERT_GT(ewk_init(), 0); + + const char* proxyUrl = getenv("http_proxy"); + if (proxyUrl) + ewk_network_proxy_uri_set(proxyUrl); +} + +void EWKTestEnvironment::TearDown() +{ + ewk_shutdown(); +} + +} diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.h b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.h new file mode 100644 index 000000000..7ca6966ab --- /dev/null +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.h @@ -0,0 +1,38 @@ +/* + Copyright (C) 2012 Samsung Electronics + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef EWKTestEnvironment_h +#define EWKTestEnvironment_h + +#include <gtest/gtest.h> + +namespace EWKUnitTests { + +class EWKTestEnvironment : public ::testing::Environment { +public: + explicit EWKTestEnvironment(bool useX11Window); + + virtual void SetUp(); + virtual void TearDown(); +private: + bool m_useX11Window; +}; + +} + +#endif diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp index dbb0092e8..ce43e33f4 100644 --- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp @@ -19,131 +19,49 @@ #include "config.h" #include "EWKTestView.h" -#include "EWKTestConfig.h" #include <EWebKit.h> - +#include <wtf/NullPtr.h> #include <wtf/PassOwnPtr.h> #include <wtf/RefPtr.h> namespace EWKUnitTests { -EWKTestEcoreEvas::EWKTestEcoreEvas(int useX11Window) +EWKTestView::EWKTestView() { - if (useX11Window) - m_ecoreEvas = adoptPtr(ecore_evas_new(0, 0, 0, Config::defaultViewWidth, Config::defaultViewHeight, 0)); - else - m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(Config::defaultViewWidth, Config::defaultViewHeight)); } -EWKTestEcoreEvas::EWKTestEcoreEvas(const char* engine_name, int viewport_x, int viewport_y, int viewport_w, int viewport_h, const char* extra_options, int useX11Window) +bool EWKTestView::init(EwkViewType testViewType, int width, int height) { - if (useX11Window) - m_ecoreEvas = adoptPtr(ecore_evas_new(engine_name, viewport_x, viewport_y, viewport_w, viewport_h, extra_options)); - else - m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(viewport_x, viewport_y)); -} - -Evas* EWKTestEcoreEvas::evas() -{ - if (m_ecoreEvas.get()) - return ecore_evas_get(m_ecoreEvas.get()); - return 0; -} - -void EWKTestEcoreEvas::show() -{ - if (m_ecoreEvas.get()) - ecore_evas_show(m_ecoreEvas.get()); -} - -EWKTestView::EWKTestView(Evas* evas) - : m_evas(evas) - , m_url(Config::defaultTestPage) - , m_defaultViewType(TiledView) - , m_width(Config::defaultViewWidth) - , m_height(Config::defaultViewHeight) -{ -} - -EWKTestView::EWKTestView(Evas* evas, const char* url) - : m_evas(evas) - , m_url(url) - , m_defaultViewType(TiledView) - , m_width(Config::defaultViewWidth) - , m_height(Config::defaultViewHeight) -{ -} - -EWKTestView::EWKTestView(Evas* evas, EwkViewType type, const char* url) - : m_evas(evas) - , m_url(url) - , m_defaultViewType(type) - , m_width(Config::defaultViewWidth) - , m_height(Config::defaultViewHeight) -{ -} + m_webView = nullptr; -EWKTestView::EWKTestView(Evas* evas, EwkViewType type, const char* url, int width, int height) - : m_evas(evas) - , m_url(url) - , m_defaultViewType(type) - , m_width(width) - , m_height(height) -{ -} + m_ecoreEvas = adoptPtr(ecore_evas_new(0, 0, 0, width, height, 0)); + if (!m_ecoreEvas) + return false; -bool EWKTestView::init() -{ - if (!m_evas || m_url.empty()) + ecore_evas_show(m_ecoreEvas.get()); + Evas* evas = ecore_evas_get(m_ecoreEvas.get()); + if (!evas) return false; - switch (m_defaultViewType) { + switch (testViewType) { case SingleView: - m_webView = adoptRef(ewk_view_single_add(m_evas)); + m_webView = adoptRef(ewk_view_single_add(evas)); break; case TiledView: - m_webView = adoptRef(ewk_view_tiled_add(m_evas)); + m_webView = adoptRef(ewk_view_tiled_add(evas)); break; } - if (!m_webView.get()) + if (!m_webView) return false; ewk_view_theme_set(m_webView.get(), Config::defaultThemePath); - ewk_view_uri_set(m_webView.get(), m_url.c_str()); -} -void EWKTestView::show() -{ - if (!m_webView.get()) - return; - evas_object_resize(m_webView.get(), m_width, m_height); + evas_object_resize(m_webView.get(), width, height); evas_object_show(m_webView.get()); evas_object_focus_set(m_webView.get(), EINA_TRUE); -} - -Evas_Object* EWKTestView::mainFrame() -{ - if (m_webView.get()) - return ewk_view_frame_main_get(m_webView.get()); - return 0; -} - -Evas* EWKTestView::evas() -{ - if (m_webView.get()) - return evas_object_evas_get(m_webView.get()); - return 0; -} - -void EWKTestView::bindEvents(void (*callback)(void*, Evas_Object*, void*), const char* eventName, void* ptr) -{ - if (!m_webView.get()) - return; - - evas_object_smart_callback_del(m_webView.get(), eventName, callback); - evas_object_smart_callback_add(m_webView.get(), eventName, callback, ptr); + return true; } } diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h index 1bdd9edae..f792a3894 100644 --- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h +++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h @@ -19,56 +19,32 @@ #ifndef EWKTestView_h #define EWKTestView_h +#include "EWKTestConfig.h" #include <Ecore_Evas.h> #include <Evas.h> -#include <string> #include <wtf/OwnPtr.h> #include <wtf/efl/RefPtrEfl.h> namespace EWKUnitTests { -class EWKTestEcoreEvas { -public: - EWKTestEcoreEvas(int useX11Window); - EWKTestEcoreEvas(const char* engine_name, int viewport_x, int viewport_y, int viewport_w, int viewport_h, const char* extra_options, int useX11Window); - - Evas* evas(); - void show(); - -private: - OwnPtr<Ecore_Evas> m_ecoreEvas; -}; - class EWKTestView { public: enum EwkViewType { SingleView = 0, - TiledView, + TiledView }; - explicit EWKTestView(Evas*); - EWKTestView(Evas*, const char* url); - EWKTestView(Evas*, EwkViewType, const char* url); - EWKTestView(Evas*, EwkViewType, const char* url, int width, int height); + EWKTestView(); Evas_Object* webView() { return m_webView.get(); } - Evas_Object* mainFrame(); - Evas* evas(); - void show(); - - bool init(); - void bindEvents(void (*callback)(void*, Evas_Object*, void*), const char* eventName, void* ptr); + bool init(EwkViewType testViewType = TiledView, int width = Config::defaultViewWidth, int height = Config::defaultViewHeight); private: EWKTestView(const EWKTestView&); - EWKTestView operator=(const EWKTestView&); + EWKTestView& operator=(const EWKTestView&); - Evas* m_evas; + OwnPtr<Ecore_Evas> m_ecoreEvas; RefPtr<Evas_Object> m_webView; - - int m_width, m_height; - EwkViewType m_defaultViewType; - std::string m_url; }; } diff --git a/Source/WebKit/efl/tests/test_ewk_view.cpp b/Source/WebKit/efl/tests/test_ewk_view.cpp index b5bbc7b8f..9fa23fb00 100644 --- a/Source/WebKit/efl/tests/test_ewk_view.cpp +++ b/Source/WebKit/efl/tests/test_ewk_view.cpp @@ -19,66 +19,54 @@ #include "config.h" #include "UnitTestUtils/EWKTestBase.h" +#include "UnitTestUtils/EWKTestConfig.h" #include <EWebKit.h> -#include <gtest/gtest.h> +#include <Ecore.h> +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> using namespace EWKUnitTests; /** * @brief Checking whether function properly returns correct value. */ -static void ewkViewEditableGetCb(void* eventInfo, Evas_Object* o, void* data) +TEST_F(EWKTestBase, ewk_view_editable_get) { - ewk_view_editable_set(o, EINA_FALSE); - EXPECT_EQ(EINA_FALSE, ewk_view_editable_get(o)); - END_TEST(); -} - -TEST(test_ewk_view, ewk_view_editable_get) -{ - RUN_TEST(ewkViewEditableGetCb); + loadUrl(); + ewk_view_editable_set(webView(), true); + ASSERT_TRUE(ewk_view_editable_get(webView())); } /** * @brief Checking whether function returns correct uri string. */ -static void ewkViewUriGetCb(void* eventInfo, Evas_Object* o, void* data) +TEST_F(EWKTestBase, ewk_view_uri_get) { - EXPECT_STREQ("http://www.webkit.org/", ewk_view_uri_get(o)); - END_TEST(); -} - -TEST(test_ewk_view, ewk_view_uri_get) -{ - RUN_TEST("http://www.webkit.org", ewkViewUriGetCb); + loadUrl(); + ASSERT_STREQ(Config::defaultTestPage, ewk_view_uri_get(webView())); } /** * @brief Checking whether function properly get/set fullscreen setting value. */ -static void ewkViewEnableFullscreenCb(void* eventInfo, Evas_Object* webView, void* data) +TEST_F(EWKTestBase, ewk_view_setting_enable_fullscreen) { + loadUrl(); #if ENABLE(FULLSCREEN_API) - ASSERT_TRUE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_TRUE(ewk_view_setting_enable_fullscreen_get(webView())); - ASSERT_TRUE(ewk_view_setting_enable_fullscreen_set(webView, true)); - ASSERT_TRUE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_TRUE(ewk_view_setting_enable_fullscreen_set(webView(), true)); + ASSERT_TRUE(ewk_view_setting_enable_fullscreen_get(webView())); - ASSERT_TRUE(ewk_view_setting_enable_fullscreen_set(webView, false)); - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_TRUE(ewk_view_setting_enable_fullscreen_set(webView(), false)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView())); #else - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView())); - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_set(webView, true)); - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_set(webView(), true)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView())); - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_set(webView, false)); - ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_set(webView(), false)); + ASSERT_FALSE(ewk_view_setting_enable_fullscreen_get(webView())); #endif - END_TEST(); -} - -TEST(test_ewk_view, ewk_view_setting_enable_fullscreen) -{ - RUN_TEST(ewkViewEnableFullscreenCb); } diff --git a/Source/WebKit/efl/tests/test_runner.cpp b/Source/WebKit/efl/tests/test_runner.cpp index 702a61f6c..e8f3c087d 100644 --- a/Source/WebKit/efl/tests/test_runner.cpp +++ b/Source/WebKit/efl/tests/test_runner.cpp @@ -16,25 +16,37 @@ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "config.h" + #include "UnitTestUtils/EWKTestBase.h" +#include "UnitTestUtils/EWKTestEnvironment.h" #include <getopt.h> #include <gtest/gtest.h> -static void parseCustomArguments(int argc, char** argv) +using namespace EWKUnitTests; + +EWKTestEnvironment* environment = 0; + +static int parseCustomArguments(int argc, char** argv) { + int useX11Window = 0; static const option options[] = { - {"useX11Window", no_argument, &EWKUnitTests::EWKTestBase::useX11Window, true}, + {"useX11Window", no_argument, &useX11Window, true}, {0, 0, 0, 0} }; int option; while ((option = getopt_long(argc, argv, "", options, 0)) != -1) { } + + return useX11Window; } int main(int argc, char** argv) { - atexit(EWKUnitTests::EWKTestBase::shutdownAll); - parseCustomArguments(argc, argv); + int useX11Window = parseCustomArguments(argc, argv); + environment = new EWKTestEnvironment(useX11Window); + testing::AddGlobalTestEnvironment(environment); ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); } |