| 1 | # -*-Tcl-*- |
|---|
| 2 | #--------------------------------------------------------------------- |
|---|
| 3 | # TITLE: |
|---|
| 4 | # notebookdb.test |
|---|
| 5 | # |
|---|
| 6 | # AUTHOR: |
|---|
| 7 | # Will Duquette |
|---|
| 8 | # |
|---|
| 9 | # DESCRIPTION: |
|---|
| 10 | # Test cases for notebookdb.tcl. Uses the ::tcltest:: harness. |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | #--------------------------------------------------------------------- |
|---|
| 14 | # Load the tcltest package |
|---|
| 15 | |
|---|
| 16 | if {[lsearch [namespace children] ::tcltest] == -1} { |
|---|
| 17 | package require tcltest |
|---|
| 18 | namespace import ::tcltest::* |
|---|
| 19 | } |
|---|
| 20 | |
|---|
| 21 | #--------------------------------------------------------------------- |
|---|
| 22 | # Load the snit package. |
|---|
| 23 | |
|---|
| 24 | lappend auto_path .. |
|---|
| 25 | source notebookdb.tcl |
|---|
| 26 | namespace import ::notebookdb::notebookdb |
|---|
| 27 | |
|---|
| 28 | # Handle notifications |
|---|
| 29 | |
|---|
| 30 | proc Notify {op name} { |
|---|
| 31 | global notifyList |
|---|
| 32 | |
|---|
| 33 | lappend notifyList $op $name |
|---|
| 34 | } |
|---|
| 35 | |
|---|
| 36 | # Cleanup before each test. |
|---|
| 37 | |
|---|
| 38 | proc cleanup {} { |
|---|
| 39 | global notifyList |
|---|
| 40 | |
|---|
| 41 | set notifyList {} |
|---|
| 42 | |
|---|
| 43 | if {[file exists pages.dat]} { |
|---|
| 44 | file delete pages.dat |
|---|
| 45 | } |
|---|
| 46 | |
|---|
| 47 | if {[file exists pages.bak]} { |
|---|
| 48 | file delete pages.bak |
|---|
| 49 | } |
|---|
| 50 | |
|---|
| 51 | if {[info command ::db] != ""} { |
|---|
| 52 | ::db destroy |
|---|
| 53 | } |
|---|
| 54 | } |
|---|
| 55 | |
|---|
| 56 | |
|---|
| 57 | #----------------------------------------------------------------------- |
|---|
| 58 | # Database creation |
|---|
| 59 | |
|---|
| 60 | test creation-1.1 {creation but no -dbfile} {} { |
|---|
| 61 | cleanup |
|---|
| 62 | |
|---|
| 63 | set result "" |
|---|
| 64 | catch {notebookdb create db} result |
|---|
| 65 | set result |
|---|
| 66 | } {Error in constructor: required option -dbfile is missing.} |
|---|
| 67 | |
|---|
| 68 | test creation-1.2 {creation with new -dbfile} {} { |
|---|
| 69 | cleanup |
|---|
| 70 | |
|---|
| 71 | notebookdb create db -dbfile pages.dat |
|---|
| 72 | list [db cget -dbfile] [file exists [db cget -dbfile]] |
|---|
| 73 | } {pages.dat 0} |
|---|
| 74 | |
|---|
| 75 | test creation-1.3 {-dbfile cannot be changed} {} { |
|---|
| 76 | cleanup |
|---|
| 77 | |
|---|
| 78 | notebookdb create db -dbfile pages.dat |
|---|
| 79 | set result {} |
|---|
| 80 | catch {db configure -dbfile newfile.dat} result |
|---|
| 81 | set result |
|---|
| 82 | } {-dbfile cannot be changed after the notebookdb is created} |
|---|
| 83 | |
|---|
| 84 | test creation-1.4 {contents of new -dbfile} {} { |
|---|
| 85 | cleanup |
|---|
| 86 | |
|---|
| 87 | notebookdb create db -dbfile pages.dat |
|---|
| 88 | db pages |
|---|
| 89 | } {} |
|---|
| 90 | |
|---|
| 91 | #----------------------------------------------------------------------- |
|---|
| 92 | # exists |
|---|
| 93 | |
|---|
| 94 | test exists-1.1 {page existence/nonexistence} {} { |
|---|
| 95 | cleanup |
|---|
| 96 | |
|---|
| 97 | notebookdb create db -dbfile pages.dat |
|---|
| 98 | db set Home "Where the heart is!" |
|---|
| 99 | list [db exists Home] [db exists Office] |
|---|
| 100 | } {1 0} |
|---|
| 101 | |
|---|
| 102 | #----------------------------------------------------------------------- |
|---|
| 103 | # pageids |
|---|
| 104 | |
|---|
| 105 | test pageids-1.1 {get pageids} {} { |
|---|
| 106 | cleanup |
|---|
| 107 | |
|---|
| 108 | notebookdb create db -dbfile pages.dat |
|---|
| 109 | db set Home {} |
|---|
| 110 | db set "Recent Changes" {} |
|---|
| 111 | db pageids |
|---|
| 112 | } {home {recent changes}} |
|---|
| 113 | |
|---|
| 114 | #----------------------------------------------------------------------- |
|---|
| 115 | # get |
|---|
| 116 | |
|---|
| 117 | test get-1.1 {get page text} {} { |
|---|
| 118 | cleanup |
|---|
| 119 | |
|---|
| 120 | notebookdb create db -dbfile pages.dat |
|---|
| 121 | db set One "My First Page" |
|---|
| 122 | db set Two "My Second Page" |
|---|
| 123 | list [db get One] [db get Two] |
|---|
| 124 | } {{My First Page |
|---|
| 125 | } {My Second Page |
|---|
| 126 | }} |
|---|
| 127 | |
|---|
| 128 | #----------------------------------------------------------------------- |
|---|
| 129 | # lock/unlock/locked |
|---|
| 130 | |
|---|
| 131 | test locks-1.1 {pages are not locked by default} {} { |
|---|
| 132 | cleanup |
|---|
| 133 | |
|---|
| 134 | notebookdb create db -dbfile pages.dat |
|---|
| 135 | db set Home {} |
|---|
| 136 | db locked Home |
|---|
| 137 | } {0} |
|---|
| 138 | |
|---|
| 139 | test locks-1.2 {pages can be locked and unlocked} {} { |
|---|
| 140 | cleanup |
|---|
| 141 | |
|---|
| 142 | notebookdb create db -dbfile pages.dat |
|---|
| 143 | db set Home {} |
|---|
| 144 | set a [db locked Home] |
|---|
| 145 | db lock Home |
|---|
| 146 | set b [db locked Home] |
|---|
| 147 | db unlock Home |
|---|
| 148 | set c [db locked Home] |
|---|
| 149 | list $a $b $c |
|---|
| 150 | } {0 1 0} |
|---|
| 151 | |
|---|
| 152 | #----------------------------------------------------------------------- |
|---|
| 153 | # set |
|---|
| 154 | |
|---|
| 155 | test set-1.1 {set creates page} {} { |
|---|
| 156 | cleanup |
|---|
| 157 | |
|---|
| 158 | notebookdb create db -dbfile pages.dat |
|---|
| 159 | db set Foo Bar |
|---|
| 160 | list [db exists Foo] [db get Foo] |
|---|
| 161 | } {1 {Bar |
|---|
| 162 | }} |
|---|
| 163 | |
|---|
| 164 | test set-1.2 {set changes page} {} { |
|---|
| 165 | cleanup |
|---|
| 166 | |
|---|
| 167 | notebookdb create db -dbfile pages.dat |
|---|
| 168 | db set Home Bar |
|---|
| 169 | db get Home |
|---|
| 170 | } {Bar |
|---|
| 171 | } |
|---|
| 172 | |
|---|
| 173 | test set-1.3 {can't set locked page} {} { |
|---|
| 174 | cleanup |
|---|
| 175 | |
|---|
| 176 | notebookdb create db -dbfile pages.dat |
|---|
| 177 | db set Home "" |
|---|
| 178 | db lock Home |
|---|
| 179 | set result "" |
|---|
| 180 | catch {db set Home Bar} result |
|---|
| 181 | set result |
|---|
| 182 | } {Error, 'Home' is locked.} |
|---|
| 183 | |
|---|
| 184 | #----------------------------------------------------------------------- |
|---|
| 185 | # name |
|---|
| 186 | |
|---|
| 187 | test name-1.1 {get canonical name} {} { |
|---|
| 188 | cleanup |
|---|
| 189 | |
|---|
| 190 | notebookdb create db -dbfile pages.dat |
|---|
| 191 | db set Home {} |
|---|
| 192 | list [db name home] [db name hOmE] |
|---|
| 193 | } {Home Home} |
|---|
| 194 | |
|---|
| 195 | #----------------------------------------------------------------------- |
|---|
| 196 | # pagetime |
|---|
| 197 | |
|---|
| 198 | test pagetime-1.1 {page time is current for new pages} {} { |
|---|
| 199 | cleanup |
|---|
| 200 | |
|---|
| 201 | set t1 [clock seconds] |
|---|
| 202 | notebookdb create db -dbfile pages.dat |
|---|
| 203 | after 2000 |
|---|
| 204 | db set Home {} |
|---|
| 205 | set t2 [db pagetime Home] |
|---|
| 206 | |
|---|
| 207 | expr {$t1 <= $t2} |
|---|
| 208 | } {1} |
|---|
| 209 | |
|---|
| 210 | test pagetime-1.2 {page time formats} {} { |
|---|
| 211 | cleanup |
|---|
| 212 | |
|---|
| 213 | set d1 [clock format [clock seconds] -format "%D"] |
|---|
| 214 | notebookdb create db -dbfile pages.dat |
|---|
| 215 | db set Home {} |
|---|
| 216 | set d2 [db pagetime Home "%D"] |
|---|
| 217 | |
|---|
| 218 | string equal $d1 $d2 |
|---|
| 219 | } {1} |
|---|
| 220 | |
|---|
| 221 | #----------------------------------------------------------------------- |
|---|
| 222 | # prevpage/nextpage |
|---|
| 223 | |
|---|
| 224 | test prevnext-1.1 {get next page when there is one} {} { |
|---|
| 225 | cleanup |
|---|
| 226 | |
|---|
| 227 | notebookdb create db -dbfile pages.dat |
|---|
| 228 | db set A "" |
|---|
| 229 | db set B "" |
|---|
| 230 | db nextpage A |
|---|
| 231 | } {B} |
|---|
| 232 | |
|---|
| 233 | test prevnext-1.2 {get next page when there isn't one} {} { |
|---|
| 234 | cleanup |
|---|
| 235 | |
|---|
| 236 | notebookdb create db -dbfile pages.dat |
|---|
| 237 | db set A "" |
|---|
| 238 | db nextpage A |
|---|
| 239 | } {} |
|---|
| 240 | |
|---|
| 241 | test prevnext-1.3 {get prev page when there is one} {} { |
|---|
| 242 | cleanup |
|---|
| 243 | |
|---|
| 244 | notebookdb create db -dbfile pages.dat |
|---|
| 245 | db set A "" |
|---|
| 246 | db set B "" |
|---|
| 247 | db prevpage B |
|---|
| 248 | } {A} |
|---|
| 249 | |
|---|
| 250 | test prevnext-1.4 {get prev page when there isn't one} {} { |
|---|
| 251 | cleanup |
|---|
| 252 | |
|---|
| 253 | notebookdb create db -dbfile pages.dat |
|---|
| 254 | db set A "" |
|---|
| 255 | db prevpage {A} |
|---|
| 256 | } {} |
|---|
| 257 | |
|---|
| 258 | |
|---|
| 259 | |
|---|
| 260 | #----------------------------------------------------------------------- |
|---|
| 261 | # pagesbytime |
|---|
| 262 | |
|---|
| 263 | test pagesbytime-1.1 {pagesbytime} {} { |
|---|
| 264 | cleanup |
|---|
| 265 | |
|---|
| 266 | notebookdb create db -dbfile pages.dat |
|---|
| 267 | db set A foo |
|---|
| 268 | after 1000 |
|---|
| 269 | db set B foo |
|---|
| 270 | after 1000 |
|---|
| 271 | db set C foo |
|---|
| 272 | after 1000 |
|---|
| 273 | db set D foo |
|---|
| 274 | after 1000 |
|---|
| 275 | db set E foo |
|---|
| 276 | |
|---|
| 277 | db pagesbytime |
|---|
| 278 | } {E D C B A} |
|---|
| 279 | |
|---|
| 280 | #----------------------------------------------------------------------- |
|---|
| 281 | # search |
|---|
| 282 | |
|---|
| 283 | test search-1.1 {searching: successful} {} { |
|---|
| 284 | cleanup |
|---|
| 285 | |
|---|
| 286 | notebookdb create db -dbfile pages.dat |
|---|
| 287 | db set A {John Doe} |
|---|
| 288 | db set "John Jones" {} |
|---|
| 289 | db set C {Sue Jones} |
|---|
| 290 | db search John |
|---|
| 291 | } {A {John Jones}} |
|---|
| 292 | |
|---|
| 293 | test search-1.2 {searching: unsuccessful} {} { |
|---|
| 294 | cleanup |
|---|
| 295 | |
|---|
| 296 | notebookdb create db -dbfile pages.dat |
|---|
| 297 | db set A {John Doe} |
|---|
| 298 | db set "John Jones" {} |
|---|
| 299 | db set C {Sue Jones} |
|---|
| 300 | db search xyzzy |
|---|
| 301 | } {} |
|---|
| 302 | |
|---|
| 303 | #----------------------------------------------------------------------- |
|---|
| 304 | # destroy |
|---|
| 305 | |
|---|
| 306 | test destroy-1.1 {destroy gets rid of self} {} { |
|---|
| 307 | cleanup |
|---|
| 308 | |
|---|
| 309 | notebookdb create db -dbfile pages.dat |
|---|
| 310 | set a [info commands "::db"] |
|---|
| 311 | db destroy |
|---|
| 312 | set b [info commands "::db"] |
|---|
| 313 | |
|---|
| 314 | list $a $b |
|---|
| 315 | } {::db {}} |
|---|
| 316 | |
|---|
| 317 | test destroy-1.2 {destroy gets rid of interpreter} {} { |
|---|
| 318 | cleanup |
|---|
| 319 | |
|---|
| 320 | notebookdb create db -dbfile pages.dat |
|---|
| 321 | set a [info commands "::db.interp"] |
|---|
| 322 | db destroy |
|---|
| 323 | set b [info commands "::db.interp"] |
|---|
| 324 | |
|---|
| 325 | list $a $b |
|---|
| 326 | } {::db.interp {}} |
|---|
| 327 | |
|---|
| 328 | #----------------------------------------------------------------------- |
|---|
| 329 | # save |
|---|
| 330 | |
|---|
| 331 | test save-1.1 {saving works} {} { |
|---|
| 332 | cleanup |
|---|
| 333 | |
|---|
| 334 | notebookdb create db -dbfile pages.dat |
|---|
| 335 | |
|---|
| 336 | db set Foo Bar |
|---|
| 337 | db save |
|---|
| 338 | db destroy |
|---|
| 339 | |
|---|
| 340 | notebookdb create db -dbfile pages.dat |
|---|
| 341 | db get Foo |
|---|
| 342 | } {Bar} |
|---|
| 343 | |
|---|
| 344 | |
|---|
| 345 | #----------------------------------------------------------------------- |
|---|
| 346 | # eval |
|---|
| 347 | |
|---|
| 348 | test eval-1.1 {eval evaluates} {} { |
|---|
| 349 | cleanup |
|---|
| 350 | |
|---|
| 351 | notebookdb create db -dbfile pages.dat |
|---|
| 352 | db eval {expr {2 + 2}} |
|---|
| 353 | } {4} |
|---|
| 354 | |
|---|
| 355 | test eval-1.2 {eval evaluates} {} { |
|---|
| 356 | cleanup |
|---|
| 357 | |
|---|
| 358 | notebookdb create db -dbfile pages.dat |
|---|
| 359 | db eval expr {2 + 2} |
|---|
| 360 | } {4} |
|---|
| 361 | |
|---|
| 362 | #----------------------------------------------------------------------- |
|---|
| 363 | # alias |
|---|
| 364 | |
|---|
| 365 | test alias-1.1 {alias aliases} {} { |
|---|
| 366 | cleanup |
|---|
| 367 | |
|---|
| 368 | proc procToAlias {value} { |
|---|
| 369 | return $value |
|---|
| 370 | } |
|---|
| 371 | |
|---|
| 372 | notebookdb create db -dbfile pages.dat |
|---|
| 373 | db alias howdy procToAlias Howdy |
|---|
| 374 | db eval howdy |
|---|
| 375 | } {Howdy} |
|---|
| 376 | |
|---|
| 377 | #----------------------------------------------------------------------- |
|---|
| 378 | # expand |
|---|
| 379 | |
|---|
| 380 | test expand-1.1 {expand expands} {} { |
|---|
| 381 | cleanup |
|---|
| 382 | |
|---|
| 383 | notebookdb create db -dbfile pages.dat |
|---|
| 384 | db expand {*[@expr 2 + 2@]*} |
|---|
| 385 | } {*4*} |
|---|
| 386 | |
|---|
| 387 | #----------------------------------------------------------------------- |
|---|
| 388 | # pageexpand |
|---|
| 389 | |
|---|
| 390 | test pageexpand-1.1 {pageexpand expands pages} {} { |
|---|
| 391 | cleanup |
|---|
| 392 | |
|---|
| 393 | notebookdb create db -dbfile pages.dat |
|---|
| 394 | db set Foo {*[@expr 2 + 2@]*} |
|---|
| 395 | db pageexpand Foo |
|---|
| 396 | } {*4* |
|---|
| 397 | } |
|---|
| 398 | |
|---|
| 399 | #----------------------------------------------------------------------- |
|---|
| 400 | # delete |
|---|
| 401 | |
|---|
| 402 | test delete-1.1 {delete page} {} { |
|---|
| 403 | cleanup |
|---|
| 404 | |
|---|
| 405 | notebookdb create db -dbfile pages.dat |
|---|
| 406 | db set Home "" |
|---|
| 407 | set a [db exists Home] |
|---|
| 408 | db delete Home |
|---|
| 409 | set b [db exists Home] |
|---|
| 410 | list $a $b |
|---|
| 411 | } {1 0} |
|---|
| 412 | |
|---|
| 413 | test delete-1.2 {can't delete locked page} {} { |
|---|
| 414 | cleanup |
|---|
| 415 | |
|---|
| 416 | notebookdb create db -dbfile pages.dat |
|---|
| 417 | db set Home "" |
|---|
| 418 | db lock Home |
|---|
| 419 | set result {} |
|---|
| 420 | catch {db delete Home} result |
|---|
| 421 | set result |
|---|
| 422 | } {Error, 'Home' is locked.} |
|---|
| 423 | |
|---|
| 424 | |
|---|
| 425 | #----------------------------------------------------------------------- |
|---|
| 426 | # rename |
|---|
| 427 | |
|---|
| 428 | test rename-1.1 {rename page} {} { |
|---|
| 429 | cleanup |
|---|
| 430 | |
|---|
| 431 | notebookdb create db -dbfile pages.dat |
|---|
| 432 | db set Foo {*[Foo]*} |
|---|
| 433 | db set Bar {+[Foo]+} |
|---|
| 434 | db rename Foo Quux |
|---|
| 435 | list \ |
|---|
| 436 | [db exists Foo] \ |
|---|
| 437 | [db exists Quux] \ |
|---|
| 438 | [string trim [db get Quux]] \ |
|---|
| 439 | [string trim [db get Bar]] |
|---|
| 440 | } {0 1 {*[Quux]*} {+[Quux]+}} |
|---|
| 441 | |
|---|
| 442 | test rename-1.2 {can't rename locked page} {} { |
|---|
| 443 | cleanup |
|---|
| 444 | |
|---|
| 445 | notebookdb create db -dbfile pages.dat |
|---|
| 446 | db set Home "" |
|---|
| 447 | db lock Home |
|---|
| 448 | |
|---|
| 449 | catch {db rename Home Office} result |
|---|
| 450 | set result |
|---|
| 451 | } {Error, 'Home' is locked.} |
|---|
| 452 | |
|---|
| 453 | test rename-1.3 {can't rename nonexistent page} {} { |
|---|
| 454 | cleanup |
|---|
| 455 | |
|---|
| 456 | notebookdb create db -dbfile pages.dat |
|---|
| 457 | set result {} |
|---|
| 458 | catch {db rename Office Study} result |
|---|
| 459 | set result |
|---|
| 460 | } {Cannot rename 'Office'; no such page.} |
|---|
| 461 | |
|---|
| 462 | test rename-1.4 {can't rename to existing page} {} { |
|---|
| 463 | cleanup |
|---|
| 464 | |
|---|
| 465 | notebookdb create db -dbfile pages.dat |
|---|
| 466 | db set Index "" |
|---|
| 467 | db set Home "" |
|---|
| 468 | |
|---|
| 469 | catch {db rename Index Home} result |
|---|
| 470 | set result |
|---|
| 471 | } {The name 'Home' is already in use.} |
|---|
| 472 | |
|---|
| 473 | #----------------------------------------------------------------------- |
|---|
| 474 | # standard aliases |
|---|
| 475 | |
|---|
| 476 | test aliases-1.1 {pageexists} {} { |
|---|
| 477 | cleanup |
|---|
| 478 | |
|---|
| 479 | notebookdb create db -dbfile pages.dat |
|---|
| 480 | db set Home "" |
|---|
| 481 | db eval pageexists Home |
|---|
| 482 | } {1} |
|---|
| 483 | |
|---|
| 484 | test aliases-1.2 {pagename} {} { |
|---|
| 485 | cleanup |
|---|
| 486 | |
|---|
| 487 | notebookdb create db -dbfile pages.dat |
|---|
| 488 | db set Home "" |
|---|
| 489 | db eval pagename hOmE |
|---|
| 490 | } {Home} |
|---|
| 491 | |
|---|
| 492 | test aliases-1.3 {pageget} {} { |
|---|
| 493 | cleanup |
|---|
| 494 | |
|---|
| 495 | notebookdb create db -dbfile pages.dat |
|---|
| 496 | db set Foo Bar |
|---|
| 497 | db eval pageget Foo |
|---|
| 498 | } {Bar |
|---|
| 499 | } |
|---|
| 500 | |
|---|
| 501 | test aliases-1.4 {expand} {} { |
|---|
| 502 | cleanup |
|---|
| 503 | |
|---|
| 504 | notebookdb create db -dbfile pages.dat |
|---|
| 505 | db eval {expand {*[@expr 2 + 2@]*}} |
|---|
| 506 | } {*4*} |
|---|
| 507 | |
|---|
| 508 | test aliases-1.5 {pageexpand} {} { |
|---|
| 509 | cleanup |
|---|
| 510 | |
|---|
| 511 | notebookdb create db -dbfile pages.dat |
|---|
| 512 | db set Foo {*[@expr 2 + 2@]*} |
|---|
| 513 | db eval pageexpand Foo |
|---|
| 514 | } {*4* |
|---|
| 515 | } |
|---|
| 516 | |
|---|
| 517 | test aliases-1.6 {pages} {} { |
|---|
| 518 | cleanup |
|---|
| 519 | |
|---|
| 520 | notebookdb create db -dbfile pages.dat |
|---|
| 521 | db set Home "" |
|---|
| 522 | db set Office "" |
|---|
| 523 | db eval pages |
|---|
| 524 | } {Home Office} |
|---|
| 525 | |
|---|
| 526 | test aliases-1.7 {dbfile} {} { |
|---|
| 527 | cleanup |
|---|
| 528 | |
|---|
| 529 | notebookdb create db -dbfile pages.dat |
|---|
| 530 | db eval dbfile |
|---|
| 531 | } {pages.dat} |
|---|
| 532 | |
|---|
| 533 | test aliases-1.8 {existence of remaining aliases} {} { |
|---|
| 534 | cleanup |
|---|
| 535 | |
|---|
| 536 | notebookdb create db -dbfile pages.dat |
|---|
| 537 | |
|---|
| 538 | set aliases {pagesbytime pagetime pagesearch} |
|---|
| 539 | |
|---|
| 540 | set result {} |
|---|
| 541 | |
|---|
| 542 | foreach alias $aliases { |
|---|
| 543 | lappend result [db eval info command $alias] |
|---|
| 544 | } |
|---|
| 545 | |
|---|
| 546 | set result |
|---|
| 547 | } {pagesbytime pagetime pagesearch} |
|---|
| 548 | |
|---|
| 549 | #----------------------------------------------------------------------- |
|---|
| 550 | # notifycommand |
|---|
| 551 | |
|---|
| 552 | test notify-1.1 {notify on set} {} { |
|---|
| 553 | cleanup |
|---|
| 554 | |
|---|
| 555 | notebookdb create db -dbfile pages.dat |
|---|
| 556 | db register Me Notify |
|---|
| 557 | db set Foo Bar |
|---|
| 558 | |
|---|
| 559 | set notifyList |
|---|
| 560 | } {set Foo} |
|---|
| 561 | |
|---|
| 562 | test notify-1.2 {notify on delete} {} { |
|---|
| 563 | cleanup |
|---|
| 564 | |
|---|
| 565 | notebookdb create db -dbfile pages.dat |
|---|
| 566 | db register Me Notify |
|---|
| 567 | db set Foo Bar |
|---|
| 568 | db delete Foo |
|---|
| 569 | |
|---|
| 570 | set notifyList |
|---|
| 571 | } {set Foo delete Foo} |
|---|
| 572 | |
|---|
| 573 | test notify-1.3 {notify on rename to change case} {} { |
|---|
| 574 | cleanup |
|---|
| 575 | |
|---|
| 576 | notebookdb create db -dbfile pages.dat |
|---|
| 577 | db register Me Notify |
|---|
| 578 | db set foo Bar |
|---|
| 579 | db rename foo Foo |
|---|
| 580 | |
|---|
| 581 | set notifyList |
|---|
| 582 | } {set foo set Foo} |
|---|
| 583 | |
|---|
| 584 | test notify-1.4 {notify on normal rename} {} { |
|---|
| 585 | cleanup |
|---|
| 586 | |
|---|
| 587 | notebookdb create db -dbfile pages.dat |
|---|
| 588 | db register Me Notify |
|---|
| 589 | db set One xyz |
|---|
| 590 | db set Two {[One]} |
|---|
| 591 | db rename One Uno |
|---|
| 592 | |
|---|
| 593 | set notifyList |
|---|
| 594 | } {set One set Two set One set Two set Uno delete One} |
|---|
| 595 | |
|---|
| 596 | test notify-1.5 {register and unregister notify} {} { |
|---|
| 597 | cleanup |
|---|
| 598 | |
|---|
| 599 | notebookdb create db -dbfile pages.dat |
|---|
| 600 | db register Me Notify |
|---|
| 601 | db set One xyz |
|---|
| 602 | db unregister Me |
|---|
| 603 | db delete One |
|---|
| 604 | |
|---|
| 605 | set notifyList |
|---|
| 606 | } {set One} |
|---|
| 607 | |
|---|
| 608 | test notify-1.6 {multiple observers} {} { |
|---|
| 609 | cleanup |
|---|
| 610 | |
|---|
| 611 | notebookdb create db -dbfile pages.dat |
|---|
| 612 | db register Me Notify |
|---|
| 613 | db register You Notify |
|---|
| 614 | db set One xyz |
|---|
| 615 | |
|---|
| 616 | set notifyList |
|---|
| 617 | } {set One set One} |
|---|
| 618 | |
|---|
| 619 | |
|---|
| 620 | #--------------------------------------------------------------------- |
|---|
| 621 | # Clean up |
|---|
| 622 | |
|---|
| 623 | cleanup |
|---|
| 624 | |
|---|
| 625 | ::tcltest::cleanupTests |
|---|
| 626 | return |
|---|
| 627 | |
|---|
| 628 | |
|---|
| 629 | |
|---|