Title: [119590] trunk
Revision
119590
Author
[email protected]
Date
2012-06-06 07:57:42 -0700 (Wed, 06 Jun 2012)

Log Message

[EFL][DRT] http/tests/globalhistory testcases do not pass
https://bugs.webkit.org/show_bug.cgi?id=82579

Patch by Mikhail Pozdnyakov <[email protected]> on 2012-06-06
Reviewed by Csaba Osztrogonác.

Tools:

DRT has provided callbacks for ewk_view "global history delegate" signals.

* DumpRenderTree/efl/DumpRenderTree.cpp:
(isGlobalHistoryTest): Aux function to ident global history testcase.
(createLayoutTestController):
* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::createView):
(DumpRenderTreeChrome::onTitleChanged): Handles also some global history testcases.
(DumpRenderTreeChrome::onWebViewNavigatedWithData): New callback function.
(DumpRenderTreeChrome::onWebViewServerRedirect): Ditto.
(DumpRenderTreeChrome::onWebViewClientRedirect): Ditto.
(DumpRenderTreeChrome::onWebViewPopulateVisitedLinks): Ditto.
* DumpRenderTree/efl/DumpRenderTreeChrome.h:
(DumpRenderTreeChrome):

LayoutTests:

* platform/efl/Skipped: Unskip http/tests/globalhistory.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (119589 => 119590)


--- trunk/LayoutTests/ChangeLog	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/LayoutTests/ChangeLog	2012-06-06 14:57:42 UTC (rev 119590)
@@ -1,3 +1,12 @@
+2012-06-06  Mikhail Pozdnyakov  <[email protected]>
+
+        [EFL][DRT] http/tests/globalhistory testcases do not pass
+        https://bugs.webkit.org/show_bug.cgi?id=82579
+
+        Reviewed by Csaba Osztrogonác.
+
+        * platform/efl/Skipped: Unskip http/tests/globalhistory.
+
 2012-06-06  Ilya Tikhonovsky  <[email protected]>
 
         Unreviewed update chromium test expectations.

Modified: trunk/LayoutTests/platform/efl/Skipped (119589 => 119590)


--- trunk/LayoutTests/platform/efl/Skipped	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-06-06 14:57:42 UTC (rev 119590)
@@ -293,9 +293,6 @@
 fast/dom/Window/slow-unload-handler.html
 fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html
 
-# The EFL port has no global history delegate
-http/tests/globalhistory
-
 # Fails because of the security policy of the user agent?
 # http://webkit.org/b/79604
 fast/mutation/database-callback-delivery.html

Modified: trunk/Tools/ChangeLog (119589 => 119590)


--- trunk/Tools/ChangeLog	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/Tools/ChangeLog	2012-06-06 14:57:42 UTC (rev 119590)
@@ -1,3 +1,25 @@
+2012-06-06  Mikhail Pozdnyakov  <[email protected]>
+
+        [EFL][DRT] http/tests/globalhistory testcases do not pass
+        https://bugs.webkit.org/show_bug.cgi?id=82579
+
+        Reviewed by Csaba Osztrogonác.
+
+        DRT has provided callbacks for ewk_view "global history delegate" signals.
+
+        * DumpRenderTree/efl/DumpRenderTree.cpp:
+        (isGlobalHistoryTest): Aux function to ident global history testcase.
+        (createLayoutTestController):
+        * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
+        (DumpRenderTreeChrome::createView):
+        (DumpRenderTreeChrome::onTitleChanged): Handles also some global history testcases.
+        (DumpRenderTreeChrome::onWebViewNavigatedWithData): New callback function.
+        (DumpRenderTreeChrome::onWebViewServerRedirect): Ditto.
+        (DumpRenderTreeChrome::onWebViewClientRedirect): Ditto.
+        (DumpRenderTreeChrome::onWebViewPopulateVisitedLinks): Ditto.
+        * DumpRenderTree/efl/DumpRenderTreeChrome.h:
+        (DumpRenderTreeChrome):
+
 2012-06-06  János Badics  <[email protected]>
 
         [Qt] run-qtwebkit-tests hangs with -j1

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp (119589 => 119590)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp	2012-06-06 14:57:42 UTC (rev 119590)
@@ -199,6 +199,11 @@
     return (hashSeparatorPos != notFound) ? testURL.substring(hashSeparatorPos + 1) : String();
 }
 
+static inline bool isGlobalHistoryTest(const String& cTestPathOrURL)
+{
+    return cTestPathOrURL.contains("/globalhistory/");
+}
+
 static void createLayoutTestController(const String& testURL, const String& expectedPixelHash)
 {
     gLayoutTestController =
@@ -214,6 +219,7 @@
         gLayoutTestController->setDumpFrameLoadCallbacks(true);
 
     gLayoutTestController->setDeveloperExtrasEnabled(true);
+    gLayoutTestController->setDumpHistoryDelegateCallbacks(isGlobalHistoryTest(testURL));
 
     if (shouldDumpAsText(testURL)) {
         gLayoutTestController->setDumpAsText(true);

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp (119589 => 119590)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2012-06-06 14:57:42 UTC (rev 119590)
@@ -110,6 +110,10 @@
     evas_object_smart_callback_add(view, "mixedcontent,run", onInsecureContentRun, 0);
     evas_object_smart_callback_add(view, "mixedcontent,displayed", onInsecureContentDisplayed, 0);
     evas_object_smart_callback_add(view, "frame,created", onFrameCreated, 0);
+    evas_object_smart_callback_add(view, "navigate,with,data", onWebViewNavigatedWithData, 0);
+    evas_object_smart_callback_add(view, "perform,server,redirect", onWebViewServerRedirect, 0);
+    evas_object_smart_callback_add(view, "perform,client,redirect", onWebViewClientRedirect, 0);
+    evas_object_smart_callback_add(view, "populate,visited,links", onWebViewPopulateVisitedLinks, 0);
 
     connectEditingCallbacks(view);
 
@@ -454,6 +458,10 @@
 
     if (!done && gLayoutTestController->dumpTitleChanges())
         printf("TITLE CHANGED: %s\n", (titleText && titleText->string) ? titleText->string : "");
+
+    if (!done && gLayoutTestController->dumpHistoryDelegateCallbacks())
+        printf("WebView updated the title for history URL \"%s\" to \"%s\".\n", ewk_frame_uri_get(frame)
+               , (titleText && titleText->string) ? titleText->string : "");
 }
 
 void DumpRenderTreeChrome::onDocumentLoadFinished(void*, Evas_Object*, void* eventInfo)
@@ -550,6 +558,57 @@
     evas_object_smart_callback_add(frame, "xss,detected", onDidDetectXSS, 0);
 }
 
+void DumpRenderTreeChrome::onWebViewNavigatedWithData(void*, Evas_Object*, void* eventInfo)
+{
+    if (done || !gLayoutTestController->dumpHistoryDelegateCallbacks())
+        return;
+
+    ASSERT(eventInfo);
+    const Ewk_View_Navigation_Data* navigationData = static_cast<Ewk_View_Navigation_Data*>(eventInfo);
+
+    ASSERT(navigationData->request);
+    ASSERT(navigationData->response);
+
+    const bool wasFailure = navigationData->has_substitute_data || navigationData->response->status_code >= 400;
+    const bool wasRedirected = navigationData->client_redirect_source && *(navigationData->client_redirect_source);
+
+    printf("WebView navigated to url \"%s\" with title \"%s\" with HTTP equivalent method \"%s\".  The navigation was %s and was %s%s.\n",
+        navigationData->url,
+        navigationData->title,
+        navigationData->request->http_method,
+        wasFailure? "a failure" : "successful",
+        (wasRedirected ? "a client redirect from " : "not a client redirect"),
+        (wasRedirected ? navigationData->client_redirect_source : ""));
+}
+
+void DumpRenderTreeChrome::onWebViewServerRedirect(void*, Evas_Object*, void* eventInfo)
+{
+    if (done || !gLayoutTestController->dumpHistoryDelegateCallbacks())
+        return;
+
+    ASSERT(eventInfo);
+    const Ewk_View_Redirection_Data* data = ""
+    printf("WebView performed a server redirect from \"%s\" to \"%s\".\n", data->source_url, data->destination_url);
+}
+
+void DumpRenderTreeChrome::onWebViewClientRedirect(void*, Evas_Object*, void* eventInfo)
+{
+    if (done || !gLayoutTestController->dumpHistoryDelegateCallbacks())
+        return;
+
+    ASSERT(eventInfo);
+    const Ewk_View_Redirection_Data* data = ""
+    printf("WebView performed a client redirect from \"%s\" to \"%s\".\n", data->source_url, data->destination_url);
+}
+
+void DumpRenderTreeChrome::onWebViewPopulateVisitedLinks(void*, Evas_Object* ewkView, void*)
+{
+    if (done || !gLayoutTestController->dumpHistoryDelegateCallbacks())
+        return;
+
+    printf("Asked to populate visited links for WebView \"%s\"\n", ewk_view_uri_get(ewkView));
+}
+
 void DumpRenderTreeChrome::onFrameProvisionalLoad(void*, Evas_Object* frame, void*)
 {
     if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h (119589 => 119590)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h	2012-06-06 14:12:36 UTC (rev 119589)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h	2012-06-06 14:57:42 UTC (rev 119590)
@@ -91,6 +91,14 @@
 
     static void onWebViewOnloadEvent(void*, Evas_Object*, void*);
 
+    static void onWebViewNavigatedWithData(void*, Evas_Object*, void*);
+
+    static void onWebViewServerRedirect(void*, Evas_Object*, void*);
+
+    static void onWebViewClientRedirect(void*, Evas_Object*, void*);
+
+    static void onWebViewPopulateVisitedLinks(void*, Evas_Object*, void*);
+
     static void onInsecureContentRun(void*, Evas_Object*, void*);
 
     static void onInsecureContentDisplayed(void*, Evas_Object*, void*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to