diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-05-17 19:55:05 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:23 -0300 |
commit | 68157d645e5eb886ec7b3b47979fdf681322e3ac (patch) | |
tree | 0693d6821fd3d6bd37ba5012d3a4cfd7e25acbf7 | |
parent | b3f5de99994ae93dd548da3d5fbc74c8a9cd3a9a (diff) |
Fix bug 803 - "QWebElementCollection.operator[] is not implemented"
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r-- | PySide/QtWebKit/typesystem_webkit.xml | 17 | ||||
-rw-r--r-- | tests/QtWebKit/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtWebKit/bug_803.py | 18 |
3 files changed, 35 insertions, 1 deletions
diff --git a/PySide/QtWebKit/typesystem_webkit.xml b/PySide/QtWebKit/typesystem_webkit.xml index 45f498ef9..a021a04af 100644 --- a/PySide/QtWebKit/typesystem_webkit.xml +++ b/PySide/QtWebKit/typesystem_webkit.xml @@ -175,5 +175,20 @@ <value-type name="QWebElement" since="4.6"> <enum-type name="StyleResolveStrategy"/> </value-type> - <value-type name="QWebElementCollection" since="4.6"/> + <value-type name="QWebElementCollection" since="4.6"> + <add-function signature="__len__"> + <inject-code> + return %CPPSELF.count(); + </inject-code> + </add-function> + <add-function signature="__getitem__"> + <inject-code> + if (_i < 0 || _i >= %CPPSELF.count()) { + PyErr_SetString(PyExc_IndexError, "index out of bounds"); + return 0; + } + return %CONVERTTOPYTHON[QWebElement](%CPPSELF.at(_i)); + </inject-code> + </add-function> + </value-type> </typesystem> diff --git a/tests/QtWebKit/CMakeLists.txt b/tests/QtWebKit/CMakeLists.txt index 683414144..bfe5c0ea0 100644 --- a/tests/QtWebKit/CMakeLists.txt +++ b/tests/QtWebKit/CMakeLists.txt @@ -1,5 +1,6 @@ PYSIDE_TEST(bug_448.py) PYSIDE_TEST(bug_694.py) +PYSIDE_TEST(bug_803.py) PYSIDE_TEST(webpage_test.py) PYSIDE_TEST(webview_test.py) PYSIDE_TEST(webframe_test.py) diff --git a/tests/QtWebKit/bug_803.py b/tests/QtWebKit/bug_803.py new file mode 100644 index 000000000..95fd546d4 --- /dev/null +++ b/tests/QtWebKit/bug_803.py @@ -0,0 +1,18 @@ +import unittest +from PySide.QtGui import * +from PySide.QtWebKit import * + +class TestBug803 (unittest.TestCase): + + def testIt(self): + app = QApplication([]) + page = QWebPage() + frame = page.mainFrame() + frame.setHtml("<html><head></head><body><p>1</p><p>2</p></body></html>") + elems = frame.findAllElements("p") + self.assertEqual(len(elems), 2) + self.assertEqual(elems[0].toPlainText(), "1") + self.assertEqual(elems[1].toPlainText(), "2") + +if __name__ == "__main__": + unittest.main() |