Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

386 lines
12 KiB

/*------------------------------------------------------------------------------
___ 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:
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Se!tt!ing hup:::& permissions: (but) &by came! and: () : au:dit!ing:">
<param name="Name" value="Special permissions for files and folders">
<param name="Local" value="acl_special_permissions.htm">
</OBJECT>
</UL>
! 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*.