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

  1. /*------------------------------------------------------------------------------
  2. ___ BVTs ___
  3. ------------------------------------------------------------------------------*/
  4. I propose that before each release of the tool, the following must be tested.
  5. Some tests on Win2K and some on Whistler. Try all of these first as MSFT Core
  6. (Authoring Group < 1000), then as OEM (Authoring Group = 10001).
  7. o Create/Delete Stop Signs: OEM can't do.
  8. o Create/Delete Stop Words: OEM can't do.
  9. o Create/Delete/Modify Keywords: OEM can't do last 2.
  10. o Create/Delete/Modify Synonym Sets: OEM can't do.
  11. o Cut/Paste of a Node: Menu + right click
  12. o Cut/Paste of a Topic: Menu + right click
  13. o Copy/Paste of a Node: Menu + right click
  14. o Copy/Paste of a Topic: Menu + right click
  15. o Create HHT (Full) and CAB: Make sure that the CAB is acceptable.
  16. o Create HHT (Delta) and CAB: Make sure that the CAB is acceptable.
  17. o Filter by SKU
  18. o Generate Report (all selections)
  19. o Mark Nodes and Topics (all selections): Try this for each of the 3 MDBs.
  20. o Create/Modify/Delete Milestone: OEM can't do.
  21. o Help
  22. o Create Topic: Button + right click
  23. o Create Node: Button + right click
  24. o Modify Topic
  25. o Delete Topic: Button + right click
  26. o Modify Node created in current milestone
  27. o Delete Node created in current milestone: Button + right click
  28. o Modify Node created in an old milestone (this must fail with a good error
  29. message)
  30. o Delete Node created in an old milestone (this must fail with a good error
  31. message): Button + right click
  32. o Navigate Link for each SKU: Try this for each of the 3 MDBs.
  33. o Add/Remove keywords button to Add Keywords (Create and Add at the same time):
  34. You can Associate a Keyword with a Node/Topic, even if the Keyword doesn't
  35. exist. It is Created and Associated in one step.
  36. o Add/Remove keywords button to Add Keywords (An existing Keyword; not created
  37. now)
  38. o Add/Remove keywords button to Remove Keywords
  39. o Combo box on main taxonomy screen to Add Keywords (Create and Add at the same
  40. time)
  41. o Combo box on main taxonomy screen to Add Keywords (An existing Keyword; not
  42. created now)
  43. o "Visible" checkbox. If its unchecked for an ancestor, then descendents must
  44. have it unchecked, and disabled.
  45. o No one can modify/delete a Node/Topic that was created by a different
  46. Authoring Group.
  47. o Edit/Find:
  48. o My authoring group
  49. o Title and URI = "xxx"
  50. o My authoring group AND Title/URI = "xxx"
  51. o HHC/HHK import
  52. As done by Server:
  53. Import windows.hhc/Fast
  54. Import HHKs/Fast
  55. Propagate Keywords: Did keywords get propagated?
  56. Import single HHK title/Slow: keywords propagated?
  57. Drop HHK onto existing HHK: old HHK replaced?
  58. o XLS import
  59. o CHM import followed by HTM import
  60. o Few copy/pastes of nodes, then refresh. Depth is correct?
  61. o Mark as subsite: bolded? Create child Node/Topic. Mustn't be subsite. Topic
  62. mustn't have subsite checkbox.
  63. o Two topics having same URI. Assign keywords to one. Propagated automatically
  64. to other? Delete a keyword from one. Same happens on the other?
  65. o Modify a Topic in one window. Modify same thing in other window. Allowed?
  66. Try to delete a Node/Topic that was modified in another window.
  67. Try to change a Node/Topic that was modified in another window.
  68. Try Move Into/Move Above/Move Below with a Node/Topic that was modified in
  69. another window.
  70. o Move things around, both Above and Below, then refresh.
  71. o OEM test:
  72. Copy desktop.mdb dell.mdb
  73. In dell.mdb, set Authoring Group to 10001.
  74. In dell.mdb, create 2 nodes and descendents under Node A. Move them around
  75. under same parent. Create 2 nodes and descendents under Node B. Move
  76. them around under same parent.
  77. In desktop.mdb, rename node A.
  78. Copy desktop.mdb dell2.mdb
  79. In dell2.mdb, set Authoring Group to 10001.
  80. Run this script:
  81. Option Explicit
  82. const DB1_MDB = "c:\temp\dell.mdb"
  83. const DB2_MDB = "c:\temp\dell2.mdb"
  84. Dim clsAuthDatabase
  85. Dim clsHHT
  86. Set clsAuthDatabase = CreateObject("AuthDatabase.Main")
  87. Set clsHHT = clsAuthDatabase.HHT
  88. clsAuthDatabase.SetDatabase DB1_MDB
  89. clsHHT.ExportHHT "c:\temp\foo.xml"
  90. clsAuthDatabase.SetDatabase DB2_MDB
  91. clsHHT.ImportHHT "c:\temp\foo.xml"
  92. Does dell2.mdb look correct? Node A has 2 Dell nodes in correct place? What
  93. about Node B Dell nodes?
  94. /*------------------------------------------------------------------------------
  95. ___ Importing from HHKs ___
  96. ------------------------------------------------------------------------------*/
  97. Create file Foo.hhk:
  98. <UL>
  99. <LI> <OBJECT type="text/sitemap">
  100. <param name="Name" value="Se!tt!ing hup:::& permissions: (but) &by came! and: () : au:dit!ing:">
  101. <param name="Name" value="Special permissions for files and folders">
  102. <param name="Local" value="acl_special_permissions.htm">
  103. </OBJECT>
  104. </UL>
  105. ! is stop sign anywhere
  106. : is stop sign at end of word
  107. but, by, and came are stop words
  108. Remove operator shortcuts: Se!tt!ing hup::: permissions: but by came! and: : au:dit!ing:
  109. Remove stop signs: Se tt ing hup permissions but by came and : au:dit ing
  110. Remove verbal operators: Se tt ing hup permissions but by came : au:dit ing
  111. Remove stop words: Se tt ing hup permissions : au:dit ing
  112. Final list of keywords: Se tt ing hup permissions : au:dit
  113. Discard: ing (repeated entry)
  114. /*------------------------------------------------------------------------------
  115. ___ Testing ChqsAndHhks ___
  116. ------------------------------------------------------------------------------*/
  117. Create these files in c:\temp\CHQ:
  118. 1\help\1.chq
  119. 1\help\2.chq
  120. 1\help\A.chm
  121. 1\help\B.chm
  122. 1\help\A.chm\A1.hhk
  123. 1\help\A.chm\A2.hhk
  124. 1\help\B.chm\B1.hhk
  125. 1\help\B.chm\B2.hhk
  126. 1\help\B.chm\Bexcl.hhk
  127. 2\help\2.chq
  128. 2\help\3.chq
  129. 2\help\A.chm
  130. 2\help\B.chm
  131. 2\help\A.chm\A2.hhk
  132. 2\help\A.chm\A3.hhk
  133. 2\help\B.chm\B2.hhk
  134. 2\help\B.chm\B3.hhk
  135. 3\help\2.chq
  136. 3\help\3.chq
  137. 3\help\A.chm
  138. 3\help\B.chm
  139. 3\help\A.chm\A2.hhk
  140. 3\help\A.chm\A3.hhk
  141. 3\help\B.chm\B1.hhk
  142. 3\help\B.chm\B2.hhk
  143. 3\help\B.chm\B3.hhk
  144. 3\help\B.chm\B4.hhk
  145. Add BExcl.hhk to ExcludedHhks
  146. Run this script:
  147. Sub TestChqAndHhk
  148. Dim clsChqsAndHhks
  149. Dim dictFilesAdded
  150. Dim dictFilesRemoved
  151. Dim dtmT0
  152. Dim dtmT1
  153. Dim vnt
  154. clsAuthDatabase.SetDatabase SERVER_MDB
  155. Set clsChqsAndHhks = clsAuthDatabase.ChqsAndHhks
  156. clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\1"
  157. Sleep 2000
  158. clsChqsAndHhks.UpdateTable 8, "c:\temp\CHQ\1"
  159. dtmT0 = Now
  160. Sleep 5000
  161. clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\2"
  162. Sleep 2000
  163. clsChqsAndHhks.UpdateTable 8, "c:\temp\CHQ\2"
  164. Sleep 5000
  165. clsChqsAndHhks.UpdateTable 4, "c:\temp\CHQ\3"
  166. dtmT1 = Now
  167. Set dictFilesAdded = CreateObject("Scripting.Dictionary")
  168. Set dictFilesRemoved = CreateObject("Scripting.Dictionary")
  169. clsChqsAndHhks.GetFileListDelta 4, dtmT0, dtmT1, dictFilesAdded, dictFilesRemoved
  170. WScript.Echo "Files added for SRV:"
  171. For Each vnt in dictFilesAdded.Keys
  172. WScript.Echo vnt
  173. Next
  174. WScript.Echo "Files removed for SRV:"
  175. For Each vnt in dictFilesRemoved.Keys
  176. WScript.Echo vnt
  177. Next
  178. dictFilesAdded.RemoveAll
  179. dictFilesRemoved.RemoveAll
  180. clsChqsAndHhks.GetFileListDelta 8, dtmT0, dtmT1, dictFilesAdded, dictFilesRemoved
  181. WScript.Echo "Files added for ADV:"
  182. For Each vnt in dictFilesAdded.Keys
  183. WScript.Echo vnt
  184. Next
  185. WScript.Echo "Files removed for ADV:"
  186. For Each vnt in dictFilesRemoved.Keys
  187. WScript.Echo vnt
  188. Next
  189. End Sub
  190. You should see this output:
  191. Files added for SRV:
  192. help\3.chq
  193. help\a.chm\a3.hhk
  194. help\b.chm\b3.hhk
  195. help\b.chm\b4.hhk
  196. Files removed for SRV:
  197. help\1.chq
  198. help\a.chm\a1.hhk
  199. Files added for ADV:
  200. help\3.chq
  201. help\a.chm\a3.hhk
  202. help\b.chm\b3.hhk
  203. Files removed for ADV:
  204. help\1.chq
  205. help\a.chm\a1.hhk
  206. help\b.chm\b1.hhk
  207. Also:
  208. After the first 2 UpdateTable's, there must be 2 entries per path in the
  209. ChqsAndHhks table. After the next 2 UpdateTables, there must be 4 entries for
  210. each *1* and 2 entries for each *3* and *2*. Final entry for each *1* must be
  211. marked Deleted. After the next UpdateTable, check the entries for b1.hhk and
  212. b4.hhk. BExcl.hhk must not appear anywhere.
  213. /*------------------------------------------------------------------------------
  214. ___ HHT generation ___
  215. ------------------------------------------------------------------------------*/
  216. All-Caps: Nodes
  217. Small letters: Topics
  218. srv1full.hht: Milestone 1 full HHT for Server
  219. srv2full.hht: Milestone 2 full HHT for Server
  220. srv2delta.hht: Milestone 2 delta HHT for Server
  221. adv1full.hht: Milestone 1 full HHT for Advanced Server
  222. adv2full.hht: Milestone 2 full HHT for Advanced Server
  223. adv2delta.hht: Milestone 2 delta HHT for Advanced Server
  224. Assign a bogus URI to each leaf.
  225. Milestone 1:
  226. Create:
  227. A1
  228. A1/AA1
  229. A1/AA1/aaa1
  230. A1/AA1/aab1
  231. A1/AB1
  232. A1/AB1/aba1
  233. A1/AB1/abb1
  234. A1/AB1/abc1
  235. A1/AC1
  236. A1/BA1
  237. B1
  238. B1/BB1
  239. B1/BC1
  240. B1/BD1
  241. B1/BD1/bda1
  242. B1/BD1/bdb1
  243. C1 (SRV+ADV SKU)
  244. C1/CA1 (SRV+ADV SKU)
  245. C1/CB1 (SRV+ADV SKU)
  246. D1
  247. D1/da1 (ADV SKU only)
  248. Stopword "aa"
  249. Stopword "any"
  250. Stopsign "."
  251. Stopsign "?"
  252. Move:
  253. A1/BA1 -> B1/BA1: Make B1 the parent of BA1
  254. Modify:
  255. C1: Uncheck all SKU's except ADV
  256. A1/AA1/aaa1: Associate keywords: Foo, Bar, Gar
  257. A1/AA1/aaa1: Remove keyword: Bar
  258. A1/AB1/aba1: Associate keyword: Compuper (with the typo)
  259. A1/AB1/abc1: Associate keyword: Win95
  260. Delete:
  261. B1/BD1
  262. Tree looks like this:
  263. A1
  264. AA1
  265. aaa1 (Kwd: Foo, Gar)
  266. aab1
  267. AB1
  268. aba1 (Kwd: Compuper)
  269. abb1
  270. abc1 (Kwd: Win95)
  271. AC1
  272. B1
  273. BB1
  274. BC1
  275. BA1
  276. C1 (ADV)
  277. CA1 (SRV+ADV)
  278. CB1 (SRV+ADV)
  279. D1
  280. da1 (ADV)
  281. Milestone 2:
  282. Modify:
  283. D1/da1: Add SKU DAT
  284. A1/AA1/aaa1: Associate keyword: Bar
  285. A1/AA1/aab1 -> A1/AA1/aab2: Ie rename the Topic.
  286. Fix the typo in the keyword Compuper. Edit/Keywords, and make it Computer
  287. Create:
  288. E2
  289. E2/ea2
  290. Stopword "aaa"
  291. Stopsign "#"
  292. Delete:
  293. Stopword "any"
  294. Stopsign "?"
  295. Keyword "Win95"
  296. Set Visible=False for E2, but not for ea2.
  297. Tree looks like this:
  298. A1
  299. AA1
  300. aaa1 (Kwd: Foo, Bar, Gar)
  301. aab2
  302. AB1
  303. aba1 (Kwd: Computer)
  304. abb1
  305. abc1
  306. AC1
  307. B1
  308. BB1
  309. BC1
  310. BA1
  311. C1 (ADV)
  312. CA1 (SRV+ADV)
  313. CB1 (SRV+ADV)
  314. D1
  315. da1 (ADV+DAT)
  316. E2
  317. ea2
  318. Make sure that the UI doesn't allow you to change any property of a node that
  319. was created in an expired milestone. Ie no change in Title, parent, etc.
  320. C1 and descendents must not appear in srv*.
  321. C1 and descendents must appear in adv*full*.
  322. da1 must not appear in srv*.
  323. aaa1 must have keywords Foo and Gar in *1*.
  324. BD1 and descendents must not appear anywhere.
  325. aaa1 must have keywords Foo, Bar and Gar in *2*.
  326. abb1 must not appear in *2*.
  327. "Win95" must appear in *1*.
  328. "Win95" must not appear in *2*.
  329. Add E2, Add E2/ea2 must appear in *2*.
  330. Del aab1, Add aab2 must appear in *2delta*.
  331. Del aba1, Add aba1 with keyword Computer must appear in *2delta*.
  332. Del abc1, Add abc1 must appear in *2delta*.
  333. Del "any", del "?", add "aaa", add "#" must appear in *2delta*.
  334. Del "any", del "?" must not appear in *full*.
  335. Del "da1", Add "da1" must appear in adv2delta.hht.
  336. E2 and ea2 must have Visible=False in *2*.