Diff
Modified: trunk/Source/WebKit/efl/ChangeLog (128994 => 128995)
--- trunk/Source/WebKit/efl/ChangeLog 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/ChangeLog 2012-09-19 13:53:47 UTC (rev 128995)
@@ -1,3 +1,37 @@
+2012-09-19 Krzysztof Czech <[email protected]>
+
+ [EFL][UT] Refactoring an implementation of testing framework for wk1.
+ https://bugs.webkit.org/show_bug.cgi?id=94925
+
+ Reviewed by Gyuyoung Kim.
+
+ The reason of changing, was to adjust current implementation to use gtest features
+ related to cleaning (SetUp, TearDown), cleaning code in terms of useless methods
+ and lastly to make framework easier to use.
+
+ * tests/UnitTestUtils/EWKTestBase.cpp:
+ (EWKUnitTests::EWKTestBase::EWKTestBase): Added to initialize test view.
+ (EWKUnitTests::EWKTestBase::webView): Returns current webview.
+ (EWKUnitTests::EWKTestBase::SetUp):
+ Before test is started, SetUp is called.
+ Used this to initialize efl and test view.
+ (EWKUnitTests::EWKTestBase::TearDown):
+ TearDown is called as soon as test is completed.
+ Used this to properly shutdown efl and clean test view.
+ (EWKUnitTests::EWKTestBase::onLoadFinished):
+ (EWKUnitTests::EWKTestBase::waitUntilLoadFinished): It waits till test page will be properly loaded.
+ (EWKUnitTests::EWKTestBase::loadUrl): Starts loading test page.
+ * tests/UnitTestUtils/EWKTestBase.h:
+ * tests/UnitTestUtils/EWKTestView.cpp:
+ (EWKUnitTests::EWKTestView::EWKTestView):
+ (EWKUnitTests::EWKTestView::init): Initialize test view.
+ * tests/UnitTestUtils/EWKTestView.h:
+ (EWKTestView):
+ * tests/test_ewk_view.cpp:
+ (TEST_F):
+ * tests/test_runner.cpp:
+ (main):
+
2012-09-19 Christophe Dumez <[email protected]>
[EFL] EFL's DRT does not support overriding 'WebKitCSSRegionsEnabled' preference
Modified: trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.cpp 2012-09-19 13:53:47 UTC (rev 128995)
@@ -19,10 +19,7 @@
#include "config.h"
#include "EWKTestBase.h"
-#include "EWKTestConfig.h"
-#include "EWKTestView.h"
#include <EWebKit.h>
-
#include <Ecore.h>
#include <Edje.h>
@@ -30,73 +27,52 @@
namespace EWKUnitTests {
-bool EWKTestBase::init()
+EWKTestBase::EWKTestBase()
+ : m_ewkTestView(0)
{
- 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;
+Evas_Object* EWKTestBase::webView()
+{
+ return m_ewkTestView->webView();
}
-void EWKTestBase::shutdownAll()
+void EWKTestBase::SetUp()
{
- int count = 0;
+ ASSERT_GT(ecore_evas_init(), 0);
+ ASSERT_GT(ewk_init(), 0);
- while ((count = ecore_evas_shutdown()) > 0) { }
- while ((count = edje_shutdown()) > 0) { }
- while ((count = ewk_shutdown()) > 0) { }
+ const char* proxyUrl = getenv("http_proxy");
+ if (proxyUrl)
+ ewk_network_proxy_uri_set(proxyUrl);
+
+ m_ewkTestView = new EWKTestView();
}
-void EWKTestBase::startTest()
+void EWKTestBase::TearDown()
{
- ecore_main_loop_begin();
+ delete m_ewkTestView;
+ ecore_evas_shutdown();
+ ewk_shutdown();
}
-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)
+void EWKTestBase::waitUntilLoadFinished()
{
- 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;
+ 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(void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data)
+void EWKTestBase::loadUrl(const char* url)
{
- return createTest(Config::defaultTestPage, event_callback, event_name, event_data);
+ ASSERT_TRUE(m_ewkTestView->init(useX11Window));
+ ASSERT_TRUE(ewk_view_uri_set(webView(), url));
+ waitUntilLoadFinished();
}
-bool EWKTestBase::runTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data)
-{
- return createTest(url, event_callback, event_name, event_data);
}
-
-}
Modified: trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestBase.h 2012-09-19 13:53:47 UTC (rev 128995)
@@ -19,49 +19,29 @@
#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)
+namespace EWKUnitTests {
-#define START_TEST() \
- do { \
- EWKTestBase::startTest(); \
- } while (0)
+class EWKTestBase: public ::testing::Test {
+public:
+ static int useX11Window;
-#define END_TEST() \
- do { \
- EWKTestBase::endTest(); \
- } while (0)
+ static void onLoadFinished(void* data, Evas_Object* webView, void* eventInfo);
-#define EFL_INIT_RET() \
- do { \
- if (!EWKTestBase::init()) \
- return false; \
- } while (0)
+ Evas_Object* webView();
+protected:
+ EWKTestBase();
-#define EFL_INIT() \
- do { \
- EWKTestBase::init(); \
- } while (0)
+ virtual void SetUp();
+ virtual void TearDown();
-namespace EWKUnitTests {
+ void loadUrl(const char* url = ""
+ void waitUntilLoadFinished();
-class EWKTestBase {
- static bool createTest(const char* url, void (*event_callback)(void*, Evas_Object*, void*), const char* event_name, void* event_data);
-public:
- static bool init();
- static void shutdownAll();
- static void startTest();
- static void endTest();
-
- 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);
-
- static int useX11Window;
+ EWKTestView* m_ewkTestView;
};
}
Modified: trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp 2012-09-19 13:53:47 UTC (rev 128995)
@@ -19,131 +19,53 @@
#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(int useX11Window, EwkViewType testViewType, int width, int height)
{
+ m_webView = nullptr;
+
if (useX11Window)
- m_ecoreEvas = adoptPtr(ecore_evas_new(engine_name, viewport_x, viewport_y, viewport_w, viewport_h, extra_options));
+ m_ecoreEvas = adoptPtr(ecore_evas_new(0, 0, 0, width, height, 0));
else
- m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(viewport_x, viewport_y));
-}
+ m_ecoreEvas = adoptPtr(ecore_evas_buffer_new(width, height));
-Evas* EWKTestEcoreEvas::evas()
-{
- if (m_ecoreEvas.get())
- return ecore_evas_get(m_ecoreEvas.get());
- return 0;
-}
+ if (!m_ecoreEvas)
+ return false;
-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)
-{
-}
-
-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)
-{
-}
-
-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);
+ return 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);
-}
-
-}
Modified: trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h 2012-09-19 13:53:47 UTC (rev 128995)
@@ -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(int useX11Window = 0, 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;
};
}
Modified: trunk/Source/WebKit/efl/tests/test_ewk_view.cpp (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/test_ewk_view.cpp 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/test_ewk_view.cpp 2012-09-19 13:53:47 UTC (rev 128995)
@@ -19,36 +19,29 @@
#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();
+ loadUrl();
+ ewk_view_editable_set(webView(), EINA_FALSE);
+ ASSERT_FALSE(ewk_view_editable_get(webView()));
}
-TEST(test_ewk_view, ewk_view_editable_get)
-{
- RUN_TEST(ewkViewEditableGetCb);
-}
-
/**
* @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();
+ loadUrl();
+ EXPECT_STREQ(ewk_view_uri_get(webView()), Config::defaultTestPage);
}
-
-TEST(test_ewk_view, ewk_view_uri_get)
-{
- RUN_TEST("http://www.webkit.org", ewkViewUriGetCb);
-}
Modified: trunk/Source/WebKit/efl/tests/test_runner.cpp (128994 => 128995)
--- trunk/Source/WebKit/efl/tests/test_runner.cpp 2012-09-19 13:50:11 UTC (rev 128994)
+++ trunk/Source/WebKit/efl/tests/test_runner.cpp 2012-09-19 13:53:47 UTC (rev 128995)
@@ -16,6 +16,8 @@
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "config.h"
+
#include "UnitTestUtils/EWKTestBase.h"
#include <getopt.h>
#include <gtest/gtest.h>
@@ -33,7 +35,6 @@
int main(int argc, char** argv)
{
- atexit(EWKUnitTests::EWKTestBase::shutdownAll);
parseCustomArguments(argc, argv);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();