##// END OF EJS Templates
added tests for return by value of objects, unregistered objects still fail...
florianlink -
r44:0f65c5e01031
parent child
Show More
@@ -213,6 +213,7 void PythonQtTestSlotCalling::testCppFactory()
213 213 {
214 214 PythonQtTestCppFactory* f = new PythonQtTestCppFactory;
215 215 PythonQt::self()->addInstanceDecorators(new PQCppObjectDecorator);
216 qRegisterMetaType<PQCppObjectNoWrap>("PQCppObjectNoWrap");
216 217 PythonQt::self()->addDecorators(new PQCppObjectNoWrapDecorator);
217 218
218 219 PythonQt::self()->addWrapperFactory(f);
@@ -227,6 +228,13 void PythonQtTestSlotCalling::testCppFactory()
227 228
228 229 QVERIFY(_helper->runScript("if obj.createPQCppObjectNoWrap(12).getH()==12: obj.setPassed();\n"));
229 230
231 QVERIFY(_helper->runScript("if obj.getPQCppObjectNoWrapAsValue().getH()==47: obj.setPassed();\n"));
232
233 qRegisterMetaType<PQUnknownButRegisteredValueObject>("PQUnknownButRegisteredValueObject");
234 QVERIFY(_helper->runScript("a = obj.getUnknownButRegisteredValueObjectAsPtr();print a;\nif a!=None: obj.setPassed();\n"));
235 QVERIFY(_helper->runScript("a = obj.getUnknownButRegisteredValueObjectAsValue();print a;\nif a!=None: obj.setPassed();\n"));
236 QVERIFY(_helper->runScript("a = obj.getUnknownValueObjectAsPtr();print a;\nif a!=None: obj.setPassed();\n"));
237 QVERIFY(_helper->runScript("a = obj.getUnknownValueObjectAsValue();print a;\nif a!=None: obj.setPassed();\n"));
230 238
231 239 // expect to get strict call to double overload
232 240 QVERIFY(_helper->runScript("obj.testNoArg()\nfrom PythonQt import PQCppObjectNoWrap\na = PQCppObjectNoWrap(22.2)\nif a.getH()==2: obj.setPassed();\n"));
@@ -212,6 +212,7 public slots:
212 212 class PQCppObjectNoWrap {
213 213
214 214 public:
215 PQCppObjectNoWrap() { _height = 0; }
215 216 PQCppObjectNoWrap(int h) { _height = h; }
216 217
217 218 int getHeight() { return _height; }
@@ -238,6 +239,17 public slots:
238 239
239 240 };
240 241
242 class PQUnknownValueObject
243 {
244 public:
245 PQUnknownValueObject() {};
246 };
247
248 class PQUnknownButRegisteredValueObject
249 {
250 public:
251 PQUnknownButRegisteredValueObject() {};
252 };
241 253
242 254 //! test the calling of slots
243 255 class PythonQtTestSlotCalling : public QObject
@@ -348,6 +360,15 public slots:
348 360 //! cpp wrapper factory test
349 361 PQCppObjectNoWrap* getPQCppObjectNoWrap(PQCppObjectNoWrap* p) { _called = true; return p; }
350 362
363 //! get a return by value PQCppObjectNoWrap
364 PQCppObjectNoWrap getPQCppObjectNoWrapAsValue() { _called = true; return PQCppObjectNoWrap(47); }
365
366 PQUnknownButRegisteredValueObject getUnknownButRegisteredValueObjectAsValue() { _called = true; return PQUnknownButRegisteredValueObject(); }
367 PQUnknownValueObject getUnknownValueObjectAsValue() { _called = true; return PQUnknownValueObject(); }
368
369 PQUnknownButRegisteredValueObject* getUnknownButRegisteredValueObjectAsPtr() { _called = true; return new PQUnknownButRegisteredValueObject(); }
370 PQUnknownValueObject* getUnknownValueObjectAsPtr() { _called = true; return new PQUnknownValueObject(); }
371
351 372 ClassA* getClassAPtr(ClassA* o) { _called = true; return o; }
352 373 ClassB* getClassBPtr(ClassB* o) { _called = true; return o; }
353 374 ClassC* getClassCPtr(ClassC* o) { _called = true; return o; }
General Comments 0
You need to be logged in to leave comments. Login now