mirror of https://github.com/tongzx/nt5src
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
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*.
|