diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-03-23 13:31:35 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:05 -0300 |
commit | deefa3508703537c318d18e5da2df57ae19a70bd (patch) | |
tree | c73144080fa16143ebcd6d6d11c4d8d6e84353af /tests/QtWebKit | |
parent | 61f479b6826f7d88c02c0ab5986e8e2c08be5518 (diff) |
Fix bug 694 - "QWebPage::extensions need injected overloads due to required casts on C++ version"
Diffstat (limited to 'tests/QtWebKit')
-rw-r--r-- | tests/QtWebKit/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtWebKit/bug_694.py | 50 |
2 files changed, 51 insertions, 0 deletions
diff --git a/tests/QtWebKit/CMakeLists.txt b/tests/QtWebKit/CMakeLists.txt index 4f381ff52..1902fbf9a 100644 --- a/tests/QtWebKit/CMakeLists.txt +++ b/tests/QtWebKit/CMakeLists.txt @@ -1,3 +1,4 @@ PYSIDE_TEST(bug_448.py) +PYSIDE_TEST(bug_694.py) PYSIDE_TEST(webpage_test.py) PYSIDE_TEST(webview_test.py) diff --git a/tests/QtWebKit/bug_694.py b/tests/QtWebKit/bug_694.py new file mode 100644 index 000000000..f4e0e0c7f --- /dev/null +++ b/tests/QtWebKit/bug_694.py @@ -0,0 +1,50 @@ +import sys +import unittest +from PySide.QtCore import * +from PySide.QtGui import * +from PySide.QtWebKit import * + +class ErrorPage (QWebPage): + + def __init__(self): + QWebPage.__init__(self) + self.rcv_extension = None + self.rcv_url = None + self.rcv_url_copy = None + self.rcv_option_type = None + self.rcv_output_type = None + + + def supportsExtension(self, extension): + return extension == QWebPage.ErrorPageExtension + + def extension(self, extension, option, output): + self.rcv_extension = extension + self.rcv_url = option.url + self.rcv_url_copy = QUrl(option.url) + self.rcv_option_type = type(option) + self.rcv_output_type = type(output) + return True + +class TestWebPageExtension(unittest.TestCase): + def testIt(self): + app = QApplication([]) + ep = ErrorPage() + view = QWebView() + view.setPage(ep) + view.load("foo://bar") # Some malformmed url + view.show() + + # If the timeout is 0 the webpage isn't even loaded on Qt4.6-i386, so we use 100 :-) + QTimer.singleShot(100, app.quit) + app.exec_() + + self.assertEqual(ep.rcv_extension, QWebPage.ErrorPageExtension) + self.assertRaises(RuntimeError, ep.rcv_url.__str__) + + self.assertEqual(ep.rcv_url_copy, "foo://bar") + self.assertEqual(ep.rcv_option_type, QWebPage.ErrorPageExtensionOption) + self.assertEqual(ep.rcv_output_type, QWebPage.ErrorPageExtensionReturn) + +if __name__ == '__main__': + unittest.main() |