diff options
Diffstat (limited to 'tests/arthur/baselineserver/src')
6 files changed, 108 insertions, 6 deletions
diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index fbf68f5..53e40b6 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -355,6 +355,14 @@ QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, boo } +QString BaselineHandler::view(const QString &baseline, const QString &rendered, const QString &compared) +{ + QFile f(":/templates/view.html"); + f.open(QIODevice::ReadOnly); + return QString::fromLatin1(f.readAll()).arg('/'+baseline, '/'+rendered, '/'+compared); +} + + QString BaselineHandler::clearAllBaselines(const QString &context) { int tot = 0; diff --git a/tests/arthur/baselineserver/src/baselineserver.h b/tests/arthur/baselineserver/src/baselineserver.h index c5cb45e..346ce1f 100644 --- a/tests/arthur/baselineserver/src/baselineserver.h +++ b/tests/arthur/baselineserver/src/baselineserver.h @@ -100,6 +100,7 @@ public: BaselineHandler(int socketDescriptor = -1); void testPathMapping(); + static QString view(const QString &baseline, const QString &rendered, const QString &compared); static QString clearAllBaselines(const QString &context); static QString updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline); static QString blacklistTest(const QString &context, const QString &itemId, bool removeFromBlacklist = false); diff --git a/tests/arthur/baselineserver/src/baselineserver.pro b/tests/arthur/baselineserver/src/baselineserver.pro index a7be03d..defa05a 100644 --- a/tests/arthur/baselineserver/src/baselineserver.pro +++ b/tests/arthur/baselineserver/src/baselineserver.pro @@ -25,3 +25,6 @@ SOURCES += main.cpp \ HEADERS += \ baselineserver.h \ htmlpage.h + +RESOURCES += \ + baselineserver.qrc diff --git a/tests/arthur/baselineserver/src/baselineserver.qrc b/tests/arthur/baselineserver/src/baselineserver.qrc new file mode 100644 index 0000000..b5cd6af --- /dev/null +++ b/tests/arthur/baselineserver/src/baselineserver.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>templates/view.html</file> + </qresource> +</RCC> diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp index 9659505..11c2eac 100644 --- a/tests/arthur/baselineserver/src/htmlpage.cpp +++ b/tests/arthur/baselineserver/src/htmlpage.cpp @@ -131,10 +131,13 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I foreach(const QString& img, images) out << "<td><a href=\"/" << img << "\"><img src=\"/" << generateThumbnail(img) << "\" width=240 height=240></a></td>\n"; - out << "<td><p><a href=\"/cgi-bin/server.cgi?cmd=updateSingleBaseline&oldBaseline=" << baseline - << "&newBaseline=" << rendered << "&url=" << pageUrl << "\">Replace baseline with rendered</a></p>" + out << "<td>\n" + << "<p><a href=\"/cgi-bin/server.cgi?cmd=updateSingleBaseline&oldBaseline=" << baseline + << "&newBaseline=" << rendered << "&url=" << pageUrl << "\">Replace baseline with rendered</a></p>\n" << "<p><a href=\"/cgi-bin/server.cgi?cmd=blacklist&context=" << ctx - << "&itemId=" << item.scriptName << "&url=" << pageUrl << "\">Blacklist this item</a></p>" + << "&itemId=" << item.scriptName << "&url=" << pageUrl << "\">Blacklist this item</a></p>\n" + << "<p><a href=\"/cgi-bin/server.cgi?cmd=view&baseline=" << baseline << "&rendered=" << rendered + << "&compared=" << compared << "&url=" << pageUrl << "\">View</a></p>\n" << "</td>\n"; out << "</tr>\n\n"; @@ -213,12 +216,15 @@ void HTMLPage::handleCGIQuery(const QString &query) QTextStream s(stdout); s << "Content-Type: text/html\r\n\r\n" << "<HTML>"; -// << "Contents of QUERY_STRING:<br>" -// << "Full string = " << query << "<br>"; QString command(cgiUrl.queryItemValue("cmd")); - if (command == QLS("updateSingleBaseline")) { + if (command == QLS("view")) { + s << BaselineHandler::view(cgiUrl.queryItemValue(QLS("baseline")), + cgiUrl.queryItemValue(QLS("rendered")), + cgiUrl.queryItemValue(QLS("compared"))); + } + else if (command == QLS("updateSingleBaseline")) { s << BaselineHandler::updateSingleBaseline(cgiUrl.queryItemValue(QLS("oldBaseline")), cgiUrl.queryItemValue(QLS("newBaseline"))); } else if (command == QLS("clearAllBaselines")) { diff --git a/tests/arthur/baselineserver/src/templates/view.html b/tests/arthur/baselineserver/src/templates/view.html new file mode 100644 index 0000000..c048f47 --- /dev/null +++ b/tests/arthur/baselineserver/src/templates/view.html @@ -0,0 +1,79 @@ +<h3>Lancelot Viewer</h3> + +<p> +Zoom: +<input name="zoom" id="z1" type="radio" checked="Checked">1x</input> +<input name="zoom" id="z2" type="radio">2x</input> +<input name="zoom" id="z4" type="radio">4x</input> +</p> + +<p><table> +<tr> +<td><input name="imgselect" id="baseline" type="radio" checked="Checked">Baseline</input></td> +<td>%1</td> +</tr> +<tr> +<td><input name="imgselect" id="rendered" type="radio">Rendered</input></td> +<td>%2</td> +</tr> +<tr> +<td><input name="imgselect" id="compared" type="radio">Differences</input></td> +<td></td> +</tr> +</table></p> + + +<p> +<canvas id="c" width="800" height="800"></canvas> +</p> + +<script> + var canvas = document.getElementById("c"); + var context = canvas.getContext("2d"); + var cat = new Image(); + cat.src = "%1"; + var z = 1; + cat.onload = function() { + context.mozImageSmoothingEnabled = false; + context.drawImage(cat, 0, 0, z*cat.width, z*cat.height); + }; + + var bbut = document.getElementById("baseline"); + bbut.onclick = function() { + cat.src = "%1"; + }; + + var rbut = document.getElementById("rendered"); + rbut.onclick = function() { + cat.src = "%2"; + }; + + var cbut = document.getElementById("compared"); + cbut.onclick = function() { + cat.src = "%3"; + }; + + function setZoom(zoom) + { + z = zoom; + canvas.width = z*800; + canvas.height = z*800; + context.mozImageSmoothingEnabled = false; + context.drawImage(cat, 0, 0, z*cat.width, z*cat.height); + } + + var z1but = document.getElementById("z1"); + z1but.onclick = function() { + setZoom(1); + }; + + var z2but = document.getElementById("z2"); + z2but.onclick = function() { + setZoom(2); + }; + + var z4but = document.getElementById("z4"); + z4but.onclick = function() { + setZoom(4); + }; +</script> |