/*------------------------------------------------------------------------------ ___ BVTs ___ ------------------------------------------------------------------------------*/ I propose that before each release of the tool, the following must be tested. Some tests on Win2K and some on Whistler. Try all of these first as MSFT Core (Authoring Group < 1000), then as OEM (Authoring Group = 10001). o Create/Delete Stop Signs: OEM can't do. o Create/Delete Stop Words: OEM can't do. o Create/Delete/Modify Keywords: OEM can't do last 2. o Create/Delete/Modify Synonym Sets: OEM can't do. o Cut/Paste of a Node: Menu + right click o Cut/Paste of a Topic: Menu + right click o Copy/Paste of a Node: Menu + right click o Copy/Paste of a Topic: Menu + right click o Create HHT (Full) and CAB: Make sure that the CAB is acceptable. o Create HHT (Delta) and CAB: Make sure that the CAB is acceptable. o Filter by SKU o Generate Report (all selections) o Mark Nodes and Topics (all selections): Try this for each of the 3 MDBs. o Create/Modify/Delete Milestone: OEM can't do. o Help o Create Topic: Button + right click o Create Node: Button + right click o Modify Topic o Delete Topic: Button + right click o Modify Node created in current milestone o Delete Node created in current milestone: Button + right click o Modify Node created in an old milestone (this must fail with a good error message) o Delete Node created in an old milestone (this must fail with a good error message): Button + right click o Navigate Link for each SKU: Try this for each of the 3 MDBs. o Add/Remove keywords button to Add Keywords (Create and Add at the same time): You can Associate a Keyword with a Node/Topic, even if the Keyword doesn't exist. It is Created and Associated in one step. o Add/Remove keywords button to Add Keywords (An existing Keyword; not created now) o Add/Remove keywords button to Remove Keywords o Combo box on main taxonomy screen to Add Keywords (Create and Add at the same time) o Combo box on main taxonomy screen to Add Keywords (An existing Keyword; not created now) o "Visible" checkbox. If its unchecked for an ancestor, then descendents must have it unchecked, and disabled. o No one can modify/delete a Node/Topic that was created by a different Authoring Group. o Edit/Find: o My authoring group o Title and URI = "xxx" o My authoring group AND Title/URI = "xxx" o HHC/HHK import As done by Server: Import windows.hhc/Fast Import HHKs/Fast Propagate Keywords: Did keywords get propagated? Import single HHK title/Slow: keywords propagated? Drop HHK onto existing HHK: old HHK replaced? o XLS import o CHM import followed by HTM import o Few copy/pastes of nodes, then refresh. Depth is correct? o Mark as subsite: bolded? Create child Node/Topic. Mustn't be subsite. Topic mustn't have subsite checkbox. o Two topics having same URI. Assign keywords to one. Propagated automatically to other? Delete a keyword from one. Same happens on the other? o Modify a Topic in one window. Modify same thing in other window. Allowed? Try to delete a Node/Topic that was modified in another window. Try to change a Node/Topic that was modified in another window. Try Move Into/Move Above/Move Below with a Node/Topic that was modified in another window. o Move things around, both Above and Below, then refresh. o OEM test: Copy desktop.mdb dell.mdb In dell.mdb, set Authoring Group to 10001. In dell.mdb, create 2 nodes and descendents under Node A. Move them around under same parent. Create 2 nodes and descendents under Node B. Move them around under same parent. In desktop.mdb, rename node A. Copy desktop.mdb dell2.mdb In dell2.mdb, set Authoring Group to 10001. Run this script: Option Explicit const DB1_MDB = "c:\temp\dell.mdb" const DB2_MDB = "c:\temp\dell2.mdb" Dim clsAuthDatabase Dim clsHHT Set clsAuthDatabase = CreateObject("AuthDatabase.Main") Set clsHHT = clsAuthDatabase.HHT clsAuthDatabase.SetDatabase DB1_MDB clsHHT.ExportHHT "c:\temp\foo.xml" clsAuthDatabase.SetDatabase DB2_MDB clsHHT.ImportHHT "c:\temp\foo.xml" Does dell2.mdb look correct? Node A has 2 Dell nodes in correct place? What about Node B Dell nodes? /*------------------------------------------------------------------------------ ___ Importing from HHKs ___ ------------------------------------------------------------------------------*/ Create file Foo.hhk: ! is stop sign anywhere : is stop sign at end of word but, by, and came are stop words Remove operator shortcuts: Se!tt!ing hup::: permissions: but by came! and: : au:dit!ing: Remove stop signs: Se tt ing hup permissions but by came and : au:dit ing Remove verbal operators: Se tt ing hup permissions but by came : au:dit ing Remove stop words: Se tt ing hup permissions : au:dit ing Final list of keywords: Se tt ing hup permissions : au:dit Discard: ing (repeated entry) /*------------------------------------------------------------------------------ ___ Testing ChqsAndHhks ___ ------------------------------------------------------------------------------*/ Create these files in c:\temp\CHQ: 1\help\1.chq 1\help\2.chq 1\help\A.chm 1\help\B.chm 1\help\A.chm\A1.hhk 1\help\A.chm\A2.hhk 1\help\B.chm\B1.hhk 1\help\B.chm\B2.hhk 1\help\B.chm\Bexcl.hhk 2\help\2.chq 2\help\3.chq 2\help\A.chm 2\help\B.chm 2\help\A.chm\A2.hhk 2\help\A.chm\A3.hhk 2\help\B.chm\B2.hhk 2\help\B.chm\B3.hhk 3\help\2.chq 3\help\3.chq 3\help\A.chm 3\help\B.chm 3\help\A.chm\A2.hhk 3\help\A.chm\A3.hhk 3\help\B.chm\B1.hhk 3\help\B.chm\B2.hhk 3\help\B.chm\B3.hhk 3\help\B.chm\B4.hhk Add BExcl.hhk to ExcludedHhks Run this script: Sub TestChqAndHhk Dim clsChqsAndHhks Dim dictFilesAdded Dim dictFilesRemoved Dim dtmT0 Dim dtmT1 Dim vnt clsAuthDatabase.SetDatabase SERVER_MDB Set clsChqsAndHhks = clsAuthDatabase.ChqsAndHhks clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\1" Sleep 2000 clsChqsAndHhks.UpdateTable 8, "c:\temp\CHQ\1" dtmT0 = Now Sleep 5000 clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\2" Sleep 2000 clsChqsAndHhks.UpdateTable 8, "c:\temp\CHQ\2" Sleep 5000 clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\3" dtmT1 = Now Set dictFilesAdded = CreateObject("Scripting.Dictionary") Set dictFilesRemoved = CreateObject("Scripting.Dictionary") clsChqsAndHhks.GetFileListDelta 4, dtmT0, dtmT1, dictFilesAdded, dictFilesRemoved WScript.Echo "Files added for SRV:" For Each vnt in dictFilesAdded.Keys WScript.Echo vnt Next WScript.Echo "Files removed for SRV:" For Each vnt in dictFilesRemoved.Keys WScript.Echo vnt Next dictFilesAdded.RemoveAll dictFilesRemoved.RemoveAll clsChqsAndHhks.GetFileListDelta 8, dtmT0, dtmT1, dictFilesAdded, dictFilesRemoved WScript.Echo "Files added for ADV:" For Each vnt in dictFilesAdded.Keys WScript.Echo vnt Next WScript.Echo "Files removed for ADV:" For Each vnt in dictFilesRemoved.Keys WScript.Echo vnt Next End Sub You should see this output: Files added for SRV: help\3.chq help\a.chm\a3.hhk help\b.chm\b3.hhk help\b.chm\b4.hhk Files removed for SRV: help\1.chq help\a.chm\a1.hhk Files added for ADV: help\3.chq help\a.chm\a3.hhk help\b.chm\b3.hhk Files removed for ADV: help\1.chq help\a.chm\a1.hhk help\b.chm\b1.hhk Also: After the first 2 UpdateTable's, there must be 2 entries per path in the ChqsAndHhks table. After the next 2 UpdateTables, there must be 4 entries for each *1* and 2 entries for each *3* and *2*. Final entry for each *1* must be marked Deleted. After the next UpdateTable, check the entries for b1.hhk and b4.hhk. BExcl.hhk must not appear anywhere. /*------------------------------------------------------------------------------ ___ HHT generation ___ ------------------------------------------------------------------------------*/ All-Caps: Nodes Small letters: Topics srv1full.hht: Milestone 1 full HHT for Server srv2full.hht: Milestone 2 full HHT for Server srv2delta.hht: Milestone 2 delta HHT for Server adv1full.hht: Milestone 1 full HHT for Advanced Server adv2full.hht: Milestone 2 full HHT for Advanced Server adv2delta.hht: Milestone 2 delta HHT for Advanced Server Assign a bogus URI to each leaf. Milestone 1: Create: A1 A1/AA1 A1/AA1/aaa1 A1/AA1/aab1 A1/AB1 A1/AB1/aba1 A1/AB1/abb1 A1/AB1/abc1 A1/AC1 A1/BA1 B1 B1/BB1 B1/BC1 B1/BD1 B1/BD1/bda1 B1/BD1/bdb1 C1 (SRV+ADV SKU) C1/CA1 (SRV+ADV SKU) C1/CB1 (SRV+ADV SKU) D1 D1/da1 (ADV SKU only) Stopword "aa" Stopword "any" Stopsign "." Stopsign "?" Move: A1/BA1 -> B1/BA1: Make B1 the parent of BA1 Modify: C1: Uncheck all SKU's except ADV A1/AA1/aaa1: Associate keywords: Foo, Bar, Gar A1/AA1/aaa1: Remove keyword: Bar A1/AB1/aba1: Associate keyword: Compuper (with the typo) A1/AB1/abc1: Associate keyword: Win95 Delete: B1/BD1 Tree looks like this: A1 AA1 aaa1 (Kwd: Foo, Gar) aab1 AB1 aba1 (Kwd: Compuper) abb1 abc1 (Kwd: Win95) AC1 B1 BB1 BC1 BA1 C1 (ADV) CA1 (SRV+ADV) CB1 (SRV+ADV) D1 da1 (ADV) Milestone 2: Modify: D1/da1: Add SKU DAT A1/AA1/aaa1: Associate keyword: Bar A1/AA1/aab1 -> A1/AA1/aab2: Ie rename the Topic. Fix the typo in the keyword Compuper. Edit/Keywords, and make it Computer Create: E2 E2/ea2 Stopword "aaa" Stopsign "#" Delete: Stopword "any" Stopsign "?" Keyword "Win95" Set Visible=False for E2, but not for ea2. Tree looks like this: A1 AA1 aaa1 (Kwd: Foo, Bar, Gar) aab2 AB1 aba1 (Kwd: Computer) abb1 abc1 AC1 B1 BB1 BC1 BA1 C1 (ADV) CA1 (SRV+ADV) CB1 (SRV+ADV) D1 da1 (ADV+DAT) E2 ea2 Make sure that the UI doesn't allow you to change any property of a node that was created in an expired milestone. Ie no change in Title, parent, etc. C1 and descendents must not appear in srv*. C1 and descendents must appear in adv*full*. da1 must not appear in srv*. aaa1 must have keywords Foo and Gar in *1*. BD1 and descendents must not appear anywhere. aaa1 must have keywords Foo, Bar and Gar in *2*. abb1 must not appear in *2*. "Win95" must appear in *1*. "Win95" must not appear in *2*. Add E2, Add E2/ea2 must appear in *2*. Del aab1, Add aab2 must appear in *2delta*. Del aba1, Add aba1 with keyword Computer must appear in *2delta*. Del abc1, Add abc1 must appear in *2delta*. Del "any", del "?", add "aaa", add "#" must appear in *2delta*. Del "any", del "?" must not appear in *full*. Del "da1", Add "da1" must appear in adv2delta.hht. E2 and ea2 must have Visible=False in *2*.