#include <nodes/FlowScene>#include <nodes/FlowView>#include <nodes/Node>#include <nodes/NodeDataModel>#include <catch2/catch.hpp>#include <QtTest>#include "ApplicationSetup.hpp"#include "StubNodeDataModel.hpp"using QtNodes::FlowScene;using QtNodes::FlowView;using QtNodes::Node;using QtNodes::NodeDataModel;using QtNodes::NodeGraphicsObject;using QtNodes::PortType;TEST_CASE("NodeDataModel::portOutConnectionPolicy(...) isn't called for input ""connections (issue #127)","[gui]"){class MockModel : public StubNodeDataModel{public:unsigned int nPorts(PortType) const override { return 1; }NodeDataModel::ConnectionPolicyportOutConnectionPolicy(int index) const override{portOutConnectionPolicyCalledCount++;return NodeDataModel::ConnectionPolicy::One;}mutable int portOutConnectionPolicyCalledCount = 0;};auto setup = applicationSetup();FlowScene scene;FlowView view(&scene);// Ensure we have enough size to contain the nodeview.resize(640, 480);view.show();REQUIRE(QTest::qWaitForWindowExposed(&view));auto& node = scene.createNode(std::make_unique<MockModel>());auto& model = dynamic_cast<MockModel&>(*node.nodeDataModel());auto& ngo = node.nodeGraphicsObject();auto& ngeom = node.nodeGeometry();// Move the node to somewhere in the middle of the screenngo.setPos(QPointF(50, 50));// Compute the on-screen position of the input portQPointF scInPortPos = ngeom.portScenePosition(0, PortType::In, ngo.sceneTransform());QPoint vwInPortPos = view.mapFromScene(scInPortPos);// Create a partial connection by clicking on the input port of the nodeQTest::mousePress(view.windowHandle(), Qt::LeftButton, Qt::NoModifier, vwInPortPos);CHECK(model.portOutConnectionPolicyCalledCount == 0);}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。