capybara-webkit/src/Node.cpp

32 lines
1.0 KiB
C++

#include "Node.h"
#include "WebPage.h"
#include "WebPageManager.h"
#include "JsonSerializer.h"
#include "InvocationResult.h"
Node::Node(WebPageManager *manager, QStringList &arguments, QObject *parent) : JavascriptCommand(manager, arguments, parent) {
}
void Node::start() {
QStringList functionArguments(arguments());
QString functionName = functionArguments.takeFirst();
QString allowUnattached = functionArguments.takeFirst();
InvocationResult result = page()->invokeCapybaraFunction(functionName, allowUnattached == "true", functionArguments);
if (functionName == "focus_frame") {
page()->setCurrentFrameParent(page()->currentFrame()->parentFrame());
}
if (result.hasError()) {
finish(&result);
} else {
JsonSerializer serializer;
InvocationResult jsonResult = InvocationResult(serializer.serialize(result.result()));
finish(&jsonResult);
}
}
QString Node::toString() const {
QStringList functionArguments(arguments());
return QString("Node.") + functionArguments.takeFirst();
}