aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-05-17 19:55:05 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:23 -0300
commit68157d645e5eb886ec7b3b47979fdf681322e3ac (patch)
tree0693d6821fd3d6bd37ba5012d3a4cfd7e25acbf7
parentb3f5de99994ae93dd548da3d5fbc74c8a9cd3a9a (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.xml17
-rw-r--r--tests/QtWebKit/CMakeLists.txt1
-rw-r--r--tests/QtWebKit/bug_803.py18
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 &lt; 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()