From c47f0a12b309404e7424afcb9297e47552f67b25 Mon Sep 17 00:00:00 2001 From: Joe Ferris Date: Wed, 6 Feb 2013 13:23:39 -0500 Subject: [PATCH] Add Driver#version to print version info * Prints version of major components * Includes capybara, capybara-webkit, Qt, WebKit, QtWebKit * Useful for debugging available features --- lib/capybara/webkit/browser.rb | 4 ++++ lib/capybara/webkit/driver.rb | 8 +++++++- spec/driver_spec.rb | 19 +++++++++++++++++++ src/CommandFactory.cpp | 1 + src/Version.cpp | 13 +++++++++++++ src/Version.h | 10 ++++++++++ src/find_command.h | 1 + src/webkit_server.pro | 2 ++ 8 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/Version.cpp create mode 100644 src/Version.h diff --git a/lib/capybara/webkit/browser.rb b/lib/capybara/webkit/browser.rb index 33ed368..bdd5044 100644 --- a/lib/capybara/webkit/browser.rb +++ b/lib/capybara/webkit/browser.rb @@ -189,6 +189,10 @@ module Capybara::Webkit command("ResizeWindow", width.to_i, height.to_i) end + def version + command("Version") + end + private def check diff --git a/lib/capybara/webkit/driver.rb b/lib/capybara/webkit/driver.rb index 310e7ad..4a38bf3 100644 --- a/lib/capybara/webkit/driver.rb +++ b/lib/capybara/webkit/driver.rb @@ -164,6 +164,12 @@ module Capybara::Webkit [] end - private + def version + [ + "Capybara: #{Capybara::VERSION}", + "capybara-webkit: #{Capybara::Driver::Webkit::VERSION}", + browser.version + ].join("\n") + end end end diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index 0184a21..1dc1460 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -2162,6 +2162,25 @@ describe Capybara::Webkit::Driver do end end + context "version" do + let(:driver) do + driver_for_html(<<-HTML) + + HTML + end + + before { visit("/") } + + it "includes Capybara, capybara-webkit, Qt, and WebKit versions" do + result = driver.version + result.should include("Capybara: #{Capybara::VERSION}") + result.should include("capybara-webkit: #{Capybara::Driver::Webkit::VERSION}") + result.should =~ /Qt: \d+\.\d+\.\d+/ + result.should =~ /WebKit: \d+\.\d+/ + result.should =~ /QtWebKit: \d+\.\d+/ + end + end + def driver_url(driver, path) URI.parse(driver.current_url).merge(path).to_s end diff --git a/src/CommandFactory.cpp b/src/CommandFactory.cpp index 9a7f35e..5e46b05 100644 --- a/src/CommandFactory.cpp +++ b/src/CommandFactory.cpp @@ -38,6 +38,7 @@ #include "JavascriptConfirmMessages.h" #include "JavascriptPromptMessages.h" #include "SetUrlBlacklist.h" +#include "Version.h" CommandFactory::CommandFactory(WebPageManager *manager, QObject *parent) : QObject(parent) { m_manager = manager; diff --git a/src/Version.cpp b/src/Version.cpp new file mode 100644 index 0000000..a92dfa0 --- /dev/null +++ b/src/Version.cpp @@ -0,0 +1,13 @@ +#include "Version.h" +#include "WebPage.h" + +Version::Version(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) { +} + +void Version::start() { + QString result = + QString("Qt: ") + QT_VERSION_STR + + QString("\nWebKit: ") + qWebKitVersion() + + QString("\nQtWebKit: ") + QTWEBKIT_VERSION_STR; + emitFinished(true, result); +} diff --git a/src/Version.h b/src/Version.h new file mode 100644 index 0000000..7550029 --- /dev/null +++ b/src/Version.h @@ -0,0 +1,10 @@ +#include "SocketCommand.h" + +class Version : public SocketCommand { + Q_OBJECT + + public: + Version(WebPageManager *, QStringList &arguments, QObject *parent = 0); + virtual void start(); +}; + diff --git a/src/find_command.h b/src/find_command.h index 633e116..cd7ebc4 100644 --- a/src/find_command.h +++ b/src/find_command.h @@ -40,3 +40,4 @@ CHECK_COMMAND(GetTimeout) CHECK_COMMAND(SetTimeout) CHECK_COMMAND(SetUrlBlacklist) +CHECK_COMMAND(Version) diff --git a/src/webkit_server.pro b/src/webkit_server.pro index 8a9df49..8a8a235 100644 --- a/src/webkit_server.pro +++ b/src/webkit_server.pro @@ -2,6 +2,7 @@ TEMPLATE = app TARGET = webkit_server DESTDIR = . HEADERS = \ + Version.h \ EnableLogging.h \ Authenticate.h \ SetConfirmAction.h \ @@ -58,6 +59,7 @@ HEADERS = \ JsonSerializer.h SOURCES = \ + Version.cpp \ EnableLogging.cpp \ Authenticate.cpp \ SetConfirmAction.cpp \