Add some HtmlHelp unittests, and fix some issues discovered by the tests.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@72856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2012-11-01 22:51:31 +00:00
parent 86598ce3cd
commit 79e9959281
19 changed files with 373 additions and 12 deletions

View File

@@ -35,8 +35,8 @@ INCLUDES = [
'htmlwinpars',
'helpdata',
'helpdlg',
'helpfrm',
'helpdlg',
'helpwnd',
'helpctrl',
]

View File

@@ -35,7 +35,17 @@ def run():
c = module.find('wxHtmlHelpController')
assert isinstance(c, etgtools.ClassDef)
c.addPrivateCopyCtor()
c.find('CreateHelpDialog').ignore(False)
c.find('CreateHelpFrame').ignore(False)
c.addItem(etgtools.WigCode("""\
// Add implementations for the pure virtuals in the base class
virtual bool DisplayBlock(long blockNo);
virtual bool DisplaySection(int sectionNo);
virtual bool LoadFile(const wxString& file = wxEmptyString);
virtual bool Quit();
"""))
#-----------------------------------------------------------------
tools.doCommonTweaks(module)

View File

@@ -38,6 +38,11 @@ def run():
c.find('SetController.controller').transfer = True
c.find('CreateSearch').ignore(False)
c.find('AddToolbarButtons').ignore(False)
c.find('CreateContents').ignore(False)
c.find('CreateIndex').ignore(False)
#-----------------------------------------------------------------
tools.doCommonTweaks(module)

View File

@@ -0,0 +1,71 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="1">
<param name="Local" value="book1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Untitled: d:\HELPS\testing\main.htm">
<param name="Local" value="main.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nested 1">
<param name="Local" value="book1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nested 2">
<param name="Local" value="book2.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="MoreNested 1">
<param name="Local" value="book1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="MoreNested 2">
<param name="Local" value="book2.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="MoreNested 3">
<param name="Local" value="book1.htm">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nested 3">
<param name="Local" value="book1.htm">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="2">
<param name="Local" value="book2.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="multiple">
<param name="Local" value="book2.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="multiple">
<param name="Local" value="book1.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nested under multiple">
<param name="Local" value="book1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nested under multiple 2">
<param name="Local" value="book1.htm">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="multiple">
<param name="Local" value="main.htm">
</OBJECT>
</UL>
</BODY></HTML>

View File

@@ -0,0 +1,18 @@
<HTML>
<HEAD>
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Project file">
<param name="Local" value="another.hhp">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Contents file">
<param name="Local" value="another.hhc">
</OBJECT>
</UL>
</BODY></HTML>

View File

@@ -0,0 +1,6 @@
[OPTIONS]
Compatibility=1.1
Contents file=another.hhc
Display compile progress=No
Title=Another book
Default topic=another.htm

View File

@@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Another HTML Help book</title>
</head>
<body>
<h1>Another book...</h1>
Here's another book to demonstrate that
<UL>
<LI> You can display multiple books in a help controller
<LI> You can selectively search books. Try it!
<LI> Index files are optional. This book doesn't supply an index, but it does supply
a contents (.hhc) file. You must always supply a contents file because
<UL>
<LI> Contents trees rule :-)
<LI> The search algorithm uses the contents tree to find out which pages are
available.
</UL>
Wanna know what a contents file looks like? Click <a href="another.hhc">here</a>
</UL>
You can also view the <a href="another.hhp">project file</a> for this book.
</body>
</html>

View File

@@ -0,0 +1,4 @@
<html><title>Book 1</title><body>
<h2>Book 1.</h2>
How do you enjoy <i> book one</i>??
</body></html>

View File

@@ -0,0 +1,5 @@
<html><title>Book 1</title><body>
<h2>Book 2.</h2>
How do you enjoy <i> book two</i>??
<p>Please click <a href="page2-b.htm">HERE</a>
</body></html>

View File

@@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Book 1">
<param name="Local" value="book1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Book 2">
<param name="ID" value=34>
<param name="Local" value="book2.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="sub book">
<param name="Local" value="page2-b.htm">
</OBJECT>
</UL>
</UL>
</BODY></HTML>

View File

@@ -0,0 +1,5 @@
<html><body>
<h2>This is main page.</h2>
<a href="book1.htm">Book 1</a><br>
<a href="book2.htm">Book 2</a><br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>
<font color="#FF0000" size=+4 face="Tahoma">
Hello, you're on sub page of page 2 !!!
</font>
</body></html>

View File

@@ -0,0 +1,16 @@
[OPTIONS]
Compatibility=1.1
Compiled file=testing.chm
Contents file=contents.hhc
Display compile progress=No
Index file=Index.hhk
Language=0x405 Èesky
Title=Test HELPFILE
Default topic=main.htm
[FILES]
main.htm
book1.htm
book2.htm
page2-b.htm

View File

@@ -1,14 +1,23 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
import os
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
#---------------------------------------------------------------------------
class helpctrl_Tests(wtc.WidgetTestCase):
# TODO: Remove this test and add real ones.
def test_helpctrl1(self):
self.fail("Unit tests for helpctrl not implemented yet.")
hc = wx.html.HtmlHelpController(parentWindow=self.frame)
hc.AddBook(os.path.join(helpPath, 'testing.hhp'))
hc.AddBook(os.path.join(helpPath, 'another.hhp'))
hc.SetShouldPreventAppExit(False)
hc.DisplayContents()
self.myYield()
#---------------------------------------------------------------------------

View File

@@ -1,15 +1,66 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
#---------------------------------------------------------------------------
class helpdata_Tests(wtc.WidgetTestCase):
# TODO: Remove this test and add real ones.
def test_helpdata1(self):
self.fail("Unit tests for helpdata not implemented yet.")
obj = wx.html.HtmlBookRecord("file", "path", "title", "start")
def test_helpdata2(self):
obj = wx.html.HtmlHelpDataItem()
def test_helpdata3(self):
obj = wx.html.HtmlHelpData()
def test_helpdata4(self):
wx.html.HF_TOOLBAR,
wx.html.HF_CONTENTS,
wx.html.HF_INDEX,
wx.html.HF_SEARCH,
wx.html.HF_BOOKMARKS,
wx.html.HF_OPEN_FILES,
wx.html.HF_PRINT,
wx.html.HF_FLAT_TOOLBAR,
wx.html.HF_MERGE_BOOKS,
wx.html.HF_ICONS_BOOK,
wx.html.HF_ICONS_BOOK_CHAPTER,
wx.html.HF_ICONS_FOLDER,
wx.html.HF_DEFAULT_STYLE,
wx.html.HF_EMBEDDED,
wx.html.HF_DIALOG,
wx.html.HF_FRAME,
wx.html.HF_MODAL,
wx.html.ID_HTML_PANEL,
wx.html.ID_HTML_BACK,
wx.html.ID_HTML_FORWARD,
wx.html.ID_HTML_UPNODE,
wx.html.ID_HTML_UP,
wx.html.ID_HTML_DOWN,
wx.html.ID_HTML_PRINT,
wx.html.ID_HTML_OPENFILE,
wx.html.ID_HTML_OPTIONS,
wx.html.ID_HTML_BOOKMARKSLIST,
wx.html.ID_HTML_BOOKMARKSADD,
wx.html.ID_HTML_BOOKMARKSREMOVE,
wx.html.ID_HTML_TREECTRL,
wx.html.ID_HTML_INDEXPAGE,
wx.html.ID_HTML_INDEXLIST,
wx.html.ID_HTML_INDEXTEXT,
wx.html.ID_HTML_INDEXBUTTON,
wx.html.ID_HTML_INDEXBUTTONALL,
wx.html.ID_HTML_NOTEBOOK,
wx.html.ID_HTML_SEARCHPAGE,
wx.html.ID_HTML_SEARCHTEXT,
wx.html.ID_HTML_SEARCHLIST,
wx.html.ID_HTML_SEARCHBUTTON,
wx.html.ID_HTML_SEARCHCHOICE,
wx.html.ID_HTML_COUNTINFO
#---------------------------------------------------------------------------
if __name__ == '__main__':

View File

@@ -1,14 +1,23 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
import os
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
#---------------------------------------------------------------------------
class helpdlg_Tests(wtc.WidgetTestCase):
# TODO: Remove this test and add real ones.
def test_helpdlg1(self):
self.fail("Unit tests for helpdlg not implemented yet.")
data = wx.html.HtmlHelpData()
data.AddBook(os.path.join(helpPath, 'testing.hhp'))
data.AddBook(os.path.join(helpPath, 'another.hhp'))
dlg = wx.html.HtmlHelpDialog(data)
self.myYield()
dlg.Destroy()
#---------------------------------------------------------------------------

View File

@@ -1,14 +1,28 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
import os
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
#---------------------------------------------------------------------------
class helpfrm_Tests(wtc.WidgetTestCase):
# TODO: Remove this test and add real ones.
def test_helpfrm1(self):
self.fail("Unit tests for helpfrm not implemented yet.")
data = wx.html.HtmlHelpData()
data.AddBook(os.path.join(helpPath, 'testing.hhp'))
data.AddBook(os.path.join(helpPath, 'another.hhp'))
hc = wx.html.HtmlHelpController()
frm = wx.html.HtmlHelpFrame(data)
frm.SetController(hc)
frm.Create(self.frame, -1)
frm.Show()
self.myYield()
frm.Close()
#---------------------------------------------------------------------------

View File

@@ -1,14 +1,27 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
import os
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
#---------------------------------------------------------------------------
class helpwnd_Tests(wtc.WidgetTestCase):
# TODO: Remove this test and add real ones.
def test_helpwnd1(self):
self.fail("Unit tests for helpwnd not implemented yet.")
hc = wx.html.HtmlHelpController(wx.html.HF_EMBEDDED)
hw = wx.html.HtmlHelpWindow()
hc.SetHelpWindow(hw)
hw.Create(self.frame)
hc.AddBook(os.path.join(helpPath, 'testing.hhp'))
hc.AddBook(os.path.join(helpPath, 'another.hhp'))
self.frame.SendSizeEvent()
self.myYield()
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,68 @@
import imp_unittest, unittest
import wtc
import wx
import wx.html
#---------------------------------------------------------------------------
class htmldefs_Tests(wtc.WidgetTestCase):
def test_htmldefs1(self):
wx.html.HTML_ALIGN_LEFT
wx.html.HTML_ALIGN_CENTER
wx.html.HTML_ALIGN_RIGHT
wx.html.HTML_ALIGN_BOTTOM
wx.html.HTML_ALIGN_TOP
wx.html.HTML_CLR_FOREGROUND
wx.html.HTML_CLR_BACKGROUND
wx.html.HTML_UNITS_PIXELS
wx.html.HTML_UNITS_PERCENT
wx.html.HTML_INDENT_LEFT
wx.html.HTML_INDENT_RIGHT
wx.html.HTML_INDENT_TOP
wx.html.HTML_INDENT_BOTTOM
wx.html.HTML_INDENT_HORIZONTAL
wx.html.HTML_INDENT_VERTICAL
wx.html.HTML_INDENT_ALL
wx.html.HTML_COND_ISANCHOR
wx.html.HTML_COND_ISIMAGEMAP
wx.html.HTML_COND_USER
wx.html.HW_SCROLLBAR_NEVER
wx.html.HW_SCROLLBAR_AUTO
wx.html.HW_NO_SELECTION
wx.html.HW_DEFAULT_STYLE
wx.html.HTML_OPEN
wx.html.HTML_BLOCK
wx.html.HTML_REDIRECT
wx.html.HTML_URL_PAGE
wx.html.HTML_URL_IMAGE
wx.html.HTML_URL_OTHER
wx.html.HTML_ALIGN_LEFT
wx.html.HTML_ALIGN_RIGHT
wx.html.HTML_ALIGN_JUSTIFY
wx.html.HTML_ALIGN_TOP
wx.html.HTML_ALIGN_BOTTOM
wx.html.HTML_ALIGN_CENTER
wx.html.HTML_CLR_FOREGROUND
wx.html.HTML_CLR_BACKGROUND
wx.html.HTML_CLR_TRANSPARENT_BACKGROUND
wx.html.HTML_UNITS_PIXELS
wx.html.HTML_UNITS_PERCENT
wx.html.HTML_INDENT_LEFT
wx.html.HTML_INDENT_RIGHT
wx.html.HTML_INDENT_TOP
wx.html.HTML_INDENT_BOTTOM
wx.html.HTML_INDENT_HORIZONTAL
wx.html.HTML_INDENT_VERTICAL
wx.html.HTML_INDENT_ALL
wx.html.HTML_COND_ISANCHOR
wx.html.HTML_COND_ISIMAGEMAP
wx.html.HTML_COND_USER
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()