[chromium] extract normalization of LayoutTests URLs to a method of TestShell
authorjochen@chromium.org <jochen@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Sep 2011 09:10:00 +0000 (09:10 +0000)
committerjochen@chromium.org <jochen@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Sep 2011 09:10:00 +0000 (09:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=68145

This will allow for other classes in DumpRenderTree to reuse this functionality

Reviewed by David Levin.

* DumpRenderTree/chromium/TestShell.cpp:
(normalizeLayoutTestURLInternal):
(dumpHistoryItem):
(TestShell::normalizeLayoutTestURL):
* DumpRenderTree/chromium/TestShell.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/DumpRenderTree/chromium/TestShell.cpp
Tools/DumpRenderTree/chromium/TestShell.h

index b6af7da..ab59a9d 100644 (file)
@@ -1,3 +1,18 @@
+2011-09-15  Jochen Eisinger  <jochen@chromium.org>
+
+        [chromium] extract normalization of LayoutTests URLs to a method of TestShell
+        https://bugs.webkit.org/show_bug.cgi?id=68145
+
+        This will allow for other classes in DumpRenderTree to reuse this functionality
+
+        Reviewed by David Levin.
+
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (normalizeLayoutTestURLInternal):
+        (dumpHistoryItem):
+        (TestShell::normalizeLayoutTestURL):
+        * DumpRenderTree/chromium/TestShell.h:
+
 2011-09-14  Ada Chan  <adachan@apple.com>
 
         Add test for WKBundleFrameCopyWebArchive().
 2011-09-14  Ada Chan  <adachan@apple.com>
 
         Add test for WKBundleFrameCopyWebArchive().
index f145b13..1aad074 100644 (file)
@@ -396,6 +396,21 @@ static bool HistoryItemCompareLess(const WebHistoryItem& item1, const WebHistory
     return target1 < target2;
 }
 
     return target1 < target2;
 }
 
+static string normalizeLayoutTestURLInternal(const string& url)
+{
+    string result = url;
+    size_t pos;
+    if (!url.find(fileUrlPattern) && ((pos = url.find(layoutTestsPattern)) != string::npos)) {
+        // adjust file URLs to match upstream results.
+        result.replace(0, pos + layoutTestsPatternSize, fileTestPrefix);
+    } else if (!url.find(dataUrlPattern)) {
+        // URL-escape data URLs to match results upstream.
+        string path = webkit_support::EscapePath(url.substr(dataUrlPatternSize));
+        result.replace(dataUrlPatternSize, url.length(), path);
+    }
+    return result;
+}
+
 static string dumpHistoryItem(const WebHistoryItem& item, int indent, bool isCurrent)
 {
     string result;
 static string dumpHistoryItem(const WebHistoryItem& item, int indent, bool isCurrent)
 {
     string result;
@@ -406,17 +421,7 @@ static string dumpHistoryItem(const WebHistoryItem& item, int indent, bool isCur
     } else
         result.append(indent, ' ');
 
     } else
         result.append(indent, ' ');
 
-    string url = item.urlString().utf8();
-    size_t pos;
-    if (!url.find(fileUrlPattern) && ((pos = url.find(layoutTestsPattern)) != string::npos)) {
-        // adjust file URLs to match upstream results.
-        url.replace(0, pos + layoutTestsPatternSize, fileTestPrefix);
-    } else if (!url.find(dataUrlPattern)) {
-        // URL-escape data URLs to match results upstream.
-        string path = webkit_support::EscapePath(url.substr(dataUrlPatternSize));
-        url.replace(dataUrlPatternSize, url.length(), path);
-    }
-
+    string url = normalizeLayoutTestURLInternal(item.urlString().utf8());
     result.append(url);
     if (!item.target().isEmpty()) {
         result.append(" (in frame \"");
     result.append(url);
     if (!item.target().isEmpty()) {
         result.append(" (in frame \"");
@@ -689,3 +694,8 @@ int TestShell::windowCount()
 {
     return m_windowList.size();
 }
 {
     return m_windowList.size();
 }
+
+string TestShell::normalizeLayoutTestURL(const string& url)
+{
+    return normalizeLayoutTestURLInternal(url);
+}
index b3548cb..8ce4d99 100644 (file)
@@ -176,6 +176,10 @@ public:
     typedef Vector<WebViewHost*> WindowList;
     WindowList windowList() const { return m_windowList; }
 
     typedef Vector<WebViewHost*> WindowList;
     WindowList windowList() const { return m_windowList; }
 
+    // Returns a string representation of an URL's spec that does not depend on
+    // the location of the layout test in the file system.
+    std::string normalizeLayoutTestURL(const std::string&);
+
 private:
     WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*);
     void createMainWindow();
 private:
     WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*);
     void createMainWindow();