Title: [166355] trunk/Source/WebKit2
Revision
166355
Author
commit-qu...@webkit.org
Date
2014-03-27 04:33:07 -0700 (Thu, 27 Mar 2014)

Log Message

[EFL][WK2] Add tests of the set process model API
https://bugs.webkit.org/show_bug.cgi?id=130830

Patch by Maciej Florek <m.flo...@samsung.com> on 2014-03-27
Reviewed by Gyuyoung Kim.

Implement unit tests to check, if process model API works
properly. When process model is set to EWK_PROCESS_MODEL_SHARED_SECONDARY,
there should be only one WebProcess. In case of EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
setting, each WebView should have own process, as well as the network process
should exist.

* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(EWK2ContextTestMultipleProcesses::EWK2ContextTestMultipleProcesses):
(TEST_F):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (166354 => 166355)


--- trunk/Source/WebKit2/ChangeLog	2014-03-27 09:45:30 UTC (rev 166354)
+++ trunk/Source/WebKit2/ChangeLog	2014-03-27 11:33:07 UTC (rev 166355)
@@ -1,3 +1,24 @@
+2014-03-27  Maciej Florek  <m.flo...@samsung.com>
+
+        [EFL][WK2] Add tests of the set process model API
+        https://bugs.webkit.org/show_bug.cgi?id=130830
+
+        Reviewed by Gyuyoung Kim.
+
+        Implement unit tests to check, if process model API works
+        properly. When process model is set to EWK_PROCESS_MODEL_SHARED_SECONDARY,
+        there should be only one WebProcess. In case of EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
+        setting, each WebView should have own process, as well as the network process
+        should exist.
+
+        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+        (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+        (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+        (EWK2ContextTestMultipleProcesses::EWK2ContextTestMultipleProcesses):
+        (TEST_F):
+
 2014-03-27  Commit Queue  <commit-qu...@webkit.org>
 
         Unreviewed, rolling out r166296 and r166331.

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp (166354 => 166355)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp	2014-03-27 09:45:30 UTC (rev 166354)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp	2014-03-27 11:33:07 UTC (rev 166355)
@@ -38,6 +38,7 @@
     : m_ecoreEvas(0)
     , m_webView(0)
     , m_ewkViewClass(ewk2UnitTestBrowserViewSmartClass())
+    , m_multipleProcesses(false)
 {
     ewk_view_smart_class_set(&m_ewkViewClass);
 }
@@ -61,6 +62,9 @@
     Evas_Smart* smart = evas_smart_class_new(&m_ewkViewClass.sc);
 
     Ewk_Context* newContext = ewk_context_new();
+    if (m_multipleProcesses)
+        ewk_context_process_model_set(newContext, EWK_PROCESS_MODEL_MULTIPLE_SECONDARY);
+
     Ewk_Page_Group* newPageGroup = ewk_page_group_create("UnitTest");
     m_webView = ewk_view_smart_add(evas, smart, newContext, newPageGroup);
 

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h (166354 => 166355)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h	2014-03-27 09:45:30 UTC (rev 166354)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h	2014-03-27 11:33:07 UTC (rev 166355)
@@ -45,6 +45,7 @@
     virtual void TearDown();
 
     static constexpr double defaultTimeoutSeconds = 10.0;
+    bool m_multipleProcesses;
 
     bool loadUrlSync(const char* url, double timeoutSeconds = defaultTimeoutSeconds);
     bool waitUntilLoadFinished(double timeoutSeconds = defaultTimeoutSeconds);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp (166354 => 166355)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp	2014-03-27 09:45:30 UTC (rev 166354)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp	2014-03-27 11:33:07 UTC (rev 166355)
@@ -26,7 +26,10 @@
 
 #include "config.h"
 
+#include "EwkView.h"
 #include "UnitTestUtils/EWK2UnitTestBase.h"
+#include "ewk_context_private.h"
+#include "ewk_view_private.h"
 
 using namespace EWK2UnitTest;
 
@@ -48,6 +51,14 @@
     }
 };
 
+class EWK2ContextTestMultipleProcesses : public EWK2UnitTestBase {
+protected:
+    EWK2ContextTestMultipleProcesses()
+    {
+        m_multipleProcesses = true;
+    }
+};
+
 TEST_F(EWK2ContextTest, ewk_context_default_get)
 {
     Ewk_Context* defaultContext = ewk_context_default_get();
@@ -118,13 +129,90 @@
     ASSERT_EQ(EWK_CACHE_MODEL_DOCUMENT_VIEWER, ewk_context_cache_model_get(context));
 }
 
-TEST_F(EWK2ContextTest, ewk_context_process_model)
+TEST_F(EWK2ContextTest, ewk_context_web_process_model)
 {
     Ewk_Context* context = ewk_view_context_get(webView());
 
     ASSERT_EQ(EWK_PROCESS_MODEL_SHARED_SECONDARY, ewk_context_process_model_get(context));
+
+    Ewk_Page_Group* pageGroup = ewk_view_page_group_get(webView());
+    Evas* evas = ecore_evas_get(backingStore());
+    Evas_Smart* smart = evas_smart_class_new(&(ewkViewClass()->sc));
+
+    Evas_Object* webView1 = ewk_view_smart_add(evas, smart, context, pageGroup);
+    Evas_Object* webView2 = ewk_view_smart_add(evas, smart, context, pageGroup);
+
+    PlatformProcessIdentifier webView1WebProcessID = toImpl(EWKViewGetWKView(webView1))->page()->process().processIdentifier();
+    PlatformProcessIdentifier webView2WebProcessID = toImpl(EWKViewGetWKView(webView2))->page()->process().processIdentifier();
+
+    ASSERT_EQ(webView1WebProcessID, webView2WebProcessID);
 }
 
+TEST_F(EWK2ContextTestMultipleProcesses, ewk_context_web_process_model)
+{
+    Ewk_Context* context = ewk_view_context_get(webView());
+
+    ASSERT_EQ(EWK_PROCESS_MODEL_MULTIPLE_SECONDARY, ewk_context_process_model_get(context));
+
+    Ewk_Page_Group* pageGroup = ewk_view_page_group_get(webView());
+    Evas* evas = ecore_evas_get(backingStore());
+    Evas_Smart* smart = evas_smart_class_new(&(ewkViewClass()->sc));
+
+    Evas_Object* webView1 = ewk_view_smart_add(evas, smart, context, pageGroup);
+    Evas_Object* webView2 = ewk_view_smart_add(evas, smart, context, pageGroup);
+
+    PlatformProcessIdentifier webView1WebProcessID = toImpl(EWKViewGetWKView(webView1))->page()->process().processIdentifier();
+    PlatformProcessIdentifier webView2WebProcessID = toImpl(EWKViewGetWKView(webView2))->page()->process().processIdentifier();
+
+    ASSERT_NE(webView1WebProcessID, webView2WebProcessID);
+}
+
+TEST_F(EWK2ContextTest, ewk_context_network_process_model)
+{
+    Ewk_Context* context = ewk_view_context_get(webView());
+
+    ASSERT_EQ(EWK_PROCESS_MODEL_SHARED_SECONDARY, ewk_context_process_model_get(context));
+
+    Ewk_Page_Group* pageGroup = ewk_view_page_group_get(webView());
+    Evas* evas = ecore_evas_get(backingStore());
+    Evas_Smart* smart = evas_smart_class_new(&(ewkViewClass()->sc));
+
+    Evas_Object* webView1 = ewk_view_smart_add(evas, smart, context, pageGroup);
+    Evas_Object* webView2 = ewk_view_smart_add(evas, smart, context, pageGroup);
+
+    PlatformProcessIdentifier webView1WebProcessID = toImpl(EWKViewGetWKView(webView1))->page()->process().processIdentifier();
+    PlatformProcessIdentifier webView2WebProcessID = toImpl(EWKViewGetWKView(webView2))->page()->process().processIdentifier();
+
+    ASSERT_EQ(webView1WebProcessID, webView2WebProcessID);
+
+    ASSERT_TRUE(toImpl(EWKViewGetWKView(webView1))->page()->process().context().networkProcess() == nullptr);
+    ASSERT_TRUE(toImpl(EWKViewGetWKView(webView2))->page()->process().context().networkProcess() == nullptr);
+}
+
+
+TEST_F(EWK2ContextTestMultipleProcesses, ewk_context_network_process_model)
+{
+    Ewk_Context* context = ewk_view_context_get(webView());
+
+    ASSERT_EQ(EWK_PROCESS_MODEL_MULTIPLE_SECONDARY, ewk_context_process_model_get(context));
+
+    Ewk_Page_Group* pageGroup = ewk_view_page_group_get(webView());
+    Evas* evas = ecore_evas_get(backingStore());
+    Evas_Smart* smart = evas_smart_class_new(&(ewkViewClass()->sc));
+
+    Evas_Object* webView1 = ewk_view_smart_add(evas, smart, context, pageGroup);
+    Evas_Object* webView2 = ewk_view_smart_add(evas, smart, context, pageGroup);
+
+    PlatformProcessIdentifier webView1WebProcessID = toImpl(EWKViewGetWKView(webView1))->page()->process().processIdentifier();
+    PlatformProcessIdentifier webView2WebProcessID = toImpl(EWKViewGetWKView(webView2))->page()->process().processIdentifier();
+    PlatformProcessIdentifier webView1NetworkProcessID = toImpl(EWKViewGetWKView(webView1))->page()->process().context().networkProcess()->processIdentifier();
+    PlatformProcessIdentifier webView2NetworkProcessID = toImpl(EWKViewGetWKView(webView2))->page()->process().context().networkProcess()->processIdentifier();
+
+    ASSERT_NE(webView1WebProcessID, webView2WebProcessID);
+    ASSERT_NE(webView1WebProcessID, webView1NetworkProcessID);
+    ASSERT_NE(webView1WebProcessID, webView2NetworkProcessID);
+}
+
 TEST_F(EWK2ContextTest, ewk_context_new)
 {
     Ewk_Context* context = ewk_context_new();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to