summaryrefslogtreecommitdiff
path: root/Source/WebKit/efl/tests
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/efl/tests')
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp69
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h48
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.cpp47
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestEnvironment.h38
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp114
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h36
-rw-r--r--Source/WebKit/efl/tests/test_ewk_view.cpp58
-rw-r--r--Source/WebKit/efl/tests/test_runner.cpp20
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();
}