diff options
Diffstat (limited to 'tests/msgcat.test')
-rw-r--r-- | tests/msgcat.test | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/tests/msgcat.test b/tests/msgcat.test deleted file mode 100644 index b9410e2..0000000 --- a/tests/msgcat.test +++ /dev/null @@ -1,318 +0,0 @@ -# Commands covered: ::msgcat::mc ::msgcat::mclocale -# ::msgcat::mcpreferences ::msgcat::mcload -# ::msgcat::mcset ::msgcat::mcunknown -# -# This file contains a collection of tests for the msgcat script library. -# Sourcing this file into Tcl runs the tests and -# generates output for errors. No output means no errors were found. -# -# Copyright (c) 1998 Mark Harrison. -# Copyright (c) 1998-1999 by Scriptics Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: msgcat.test,v 1.2 1999/04/16 00:47:31 stanton Exp $ - -if {[lsearch [namespace children] ::tcltest] == -1} { - source [file join [pwd] [file dirname [info script]] defs.tcl] -} - -if {[catch {package require msgcat 1.0}]} { - if {[info exist msgcat1]} { - catch {puts "Cannot load msgcat 1.0 package"} - return - } else { - catch {puts "Running msgcat 1.0 tests in slave interp"} - set interp [interp create msgcat1] - $interp eval [list set msgcat1 "running"] - $interp eval [list source [info script]] - interp delete $interp - return - } -} - -set oldlocale [::msgcat::mclocale] - -# -# Test the various permutations of mclocale -# and mcpreferences. -# - -test msgcat-1.1 {::msgcat::mclocale default} { - ::msgcat::mclocale -} {c} -test msgcat-1.2 {::msgcat::mcpreferences, single element} { - ::msgcat::mcpreferences -} {c} -test msgcat-1.3 {::msgcat::mclocale, single element} { - ::msgcat::mclocale en -} {en} -test msgcat-1.4 {::msgcat::mclocale, single element} { - ::msgcat::mclocale -} {en} -test msgcat-1.5 {::msgcat::mcpreferences, single element} { - ::msgcat::mcpreferences -} {en} -test msgcat-1.6 {::msgcat::mclocale, two elements} { - ::msgcat::mclocale en_US -} {en_us} -test msgcat-1.7 {::msgcat::mclocale, two elements} { - ::msgcat::mclocale en_US - ::msgcat::mclocale -} {en_us} -test msgcat-1.8 {::msgcat::mcpreferences, two elements} { - ::msgcat::mcpreferences -} {en_us en} -test msgcat-1.9 {::msgcat::mclocale, three elements} { - ::msgcat::mclocale en_US_funky -} {en_us_funky} -test msgcat-1.10 {::msgcat::mclocale, three elements} { - ::msgcat::mclocale -} {en_us_funky} -test msgcat-1.11 {::msgcat::mcpreferences, three elements} { - ::msgcat::mcpreferences -} {en_us_funky en_us en} - -# -# Test mcset and mcc, ensuring that namespace partitioning -# is working. -# - -test msgcat-2.1 {::msgcat::mcset, global scope} { - ::msgcat::mcset foo_BAR text1 text2 -} {text2} -test msgcat-2.2 {::msgcat::mcset, global scope, default} { - ::msgcat::mcset foo_BAR text3 -} {text3} -test msgcat-2.2 {::msgcat::mcset, namespace overlap} { - namespace eval bar {::msgcat::mcset foo_BAR con1 con1bar} - namespace eval baz {::msgcat::mcset foo_BAR con1 con1baz} -} {con1baz} -test msgcat-2.3 {::msgcat::mcset, namespace overlap} { - ::msgcat::mclocale foo_BAR - namespace eval bar {::msgcat::mc con1} -} {con1bar} -test msgcat-2.4 {::msgcat::mcset, namespace overlap} { - ::msgcat::mclocale foo_BAR - namespace eval baz {::msgcat::mc con1} -} {con1baz} - -# -# Test mcset and mc, ensuring that more specific locales -# (e.g. "en_UK") will search less specific locales -# (e.g. "en") for translation strings. -# -# Do this for the 12 permutations of -# locales: {foo foo_BAR foo_BAR_baz} -# strings: {ov1 ov2 ov3 ov4} -# locale foo defines ov1, ov2, ov3 -# locale foo_BAR defines ov2, ov3 -# locale foo_BAR_BAZ defines ov3 -# (ov4 is defined in none) -# So, -# ov3 should be resolved in foo, foo_BAR, foo_BAR_baz -# ov2 should be resolved in foo, foo_BAR -# ov2 should resolve to foo_BAR in foo_BAR_baz -# ov1 should be resolved in foo -# ov1 should resolve to foo in foo_BAR, foo_BAR_baz -# ov4 should be resolved in none, and call mcunknown -# - -test msgcat-3.1 {::msgcat::mcset, overlap} { - ::msgcat::mcset foo ov1 ov1_foo - ::msgcat::mcset foo ov2 ov2_foo - ::msgcat::mcset foo ov3 ov3_foo - ::msgcat::mcset foo_BAR ov2 ov2_foo_BAR - ::msgcat::mcset foo_BAR ov3 ov3_foo_BAR - ::msgcat::mcset foo_BAR_baz ov3 ov3_foo_BAR_baz -} {ov3_foo_BAR_baz} -# top level, locale foo -test msgcat-3.2 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo - ::msgcat::mc ov1 -} {ov1_foo} -test msgcat-3.3 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo - ::msgcat::mc ov2 -} {ov2_foo} -test msgcat-3.4 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo - ::msgcat::mc ov3 -} {ov3_foo} -test msgcat-3.5 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo - ::msgcat::mc ov4 -} {ov4} -# second level, locale foo_BAR -test msgcat-3.6 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR - ::msgcat::mc ov1 -} {ov1_foo} -test msgcat-3.7 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR - ::msgcat::mc ov2 -} {ov2_foo_BAR} -test msgcat-3.8 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR - ::msgcat::mc ov3 -} {ov3_foo_BAR} -test msgcat-3.9 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR - ::msgcat::mc ov4 -} {ov4} -# third level, locale foo_BAR_baz -test msgcat-3.10 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR_baz - ::msgcat::mc ov1 -} {ov1_foo} -test msgcat-3.11 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR_baz - ::msgcat::mc ov2 -} {ov2_foo_BAR} -test msgcat-3.12 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR_baz - ::msgcat::mc ov3 -} {ov3_foo_BAR_baz} -test msgcat-3.13 {::msgcat::mcset, overlap} { - ::msgcat::mclocale foo_BAR_baz - ::msgcat::mc ov4 -} {ov4} - -# -# Test mcunknown, first the default operation -# and then with an overridden definition. -# - -test msgcat-4.1 {::msgcat::mcunknown, default} { - ::msgcat::mcset foo unk1 "unknown 1" -} {unknown 1} -test msgcat-4.2 {::msgcat::mcunknown, default} { - ::msgcat::mclocale foo - ::msgcat::mc unk1 -} {unknown 1} -test msgcat-4.3 {::msgcat::mcunknown, default} { - ::msgcat::mclocale foo - ::msgcat::mc unk2 -} {unk2} -test msgcat-4.4 {::msgcat::mcunknown, overridden} { - rename ::msgcat::mcunknown oldproc - proc ::msgcat::mcunknown {dom s} { - return "unknown:$dom:$s" - } - ::msgcat::mclocale foo - set result [::msgcat::mc unk1] - rename ::msgcat::mcunknown {} - rename oldproc ::msgcat::mcunknown - set result -} {unknown 1} -test msgcat-4.5 {::msgcat::mcunknown, overridden} { - rename ::msgcat::mcunknown oldproc - proc ::msgcat::mcunknown {dom s} { - return "unknown:$dom:$s" - } - ::msgcat::mclocale foo - set result [::msgcat::mc unk2] - rename ::msgcat::mcunknown {} - rename oldproc ::msgcat::mcunknown - set result -} {unknown:foo:unk2} -test msgcat-4.6 {::msgcat::mcunknown, uplevel context} { - rename ::msgcat::mcunknown oldproc - proc ::msgcat::mcunknown {dom s} { - return "unknown:$dom:$s:[info level]" - } - ::msgcat::mclocale foo - set result [::msgcat::mc unk2] - rename ::msgcat::mcunknown {} - rename oldproc ::msgcat::mcunknown - set result -} {unknown:foo:unk2:1} - - -# -# Test mcload. Need to set up an environment for -# these tests by creating a temporary directory and -# message files. -# - -set locales {en en_US en_US_funky} - -catch {file mkdir msgdir} -foreach l $locales { - set fd [open [string tolower [file join msgdir $l.msg]] w] - puts $fd "::msgcat::mcset $l abc abc-$l" - close $fd -} - -test msgcat-5.1 {::msgcat::mcload} { - ::msgcat::mclocale en - ::msgcat::mcload msgdir -} {1} -test msgcat-5.2 {::msgcat::mcload} { - ::msgcat::mclocale en_US - ::msgcat::mcload msgdir -} {2} -test msgcat-5.3 {::msgcat::mcload} { - ::msgcat::mclocale en_US_funky - ::msgcat::mcload msgdir -} {3} - -# Even though en_US_notexist does not exist, -# en_US and en should be loaded. - -test msgcat-5.4 {::msgcat::mcload} { - ::msgcat::mclocale en_US_notexist - ::msgcat::mcload msgdir -} {2} -test msgcat-5.5 {::msgcat::mcload} { - ::msgcat::mclocale no_FI_notexist - ::msgcat::mcload msgdir -} {0} -test msgcat-5.6 {::msgcat::mcload} { - ::msgcat::mclocale en - ::msgcat::mc abc -} {abc-en} -test msgcat-5.7 {::msgcat::mcload} { - ::msgcat::mclocale en_US - ::msgcat::mc abc -} {abc-en_US} -test msgcat-5.8 {::msgcat::mcload} { - ::msgcat::mclocale en_US_funky - ::msgcat::mc abc -} {abc-en_US_funky} -test msgcat-5.9 {::msgcat::mcload} { - rename ::msgcat::mcunknown oldproc - proc ::msgcat::mcunknown {dom s} { - return "unknown:$dom:$s" - } - ::msgcat::mclocale no_FI_notexist - set result [::msgcat::mc abc] - rename ::msgcat::mcunknown {} - rename oldproc ::msgcat::mcunknown - set result -} {unknown:no_fi_notexist:abc} - -# cleanup -foreach l $locales { - file delete [string tolower [file join msgdir $l.msg]] -} - -# Clean out the msg catalogs -::msgcat::mclocale $oldlocale -file delete msgdir - -::tcltest::cleanupTests -return - - - - - - - - - - - - |