#
# Tests for "auto_mkindex" and autoloading facility
# ----------------------------------------------------------------------
#   AUTHOR:  Michael J. McLennan
#	    Bell Labs Innovations for Lucent Technologies
#	    mmclennan@lucent.com
#	    http://www.tcltk.com/itcl
# ----------------------------------------------------------------------
#	    Copyright (c) 1993-1998  Lucent Technologies, Inc.
# ======================================================================
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.

package require tcltest 2.1
namespace import ::tcltest::test
set ::tcl::inl_mem_test 0
::tcltest::loadTestedCommands
package require itcl

# ----------------------------------------------------------------------
#  Test "auto_mkindex" in the presence of class definitions
# ----------------------------------------------------------------------
test mkindex-1.1 {remove any existing tclIndex file} {
    file delete tclIndex
    file exists tclIndex
} {0}

test mkindex-1.2 {build tclIndex based on a test file} {
    if {[pwd] != $::tcltest::testsDirectory} {
	file copy -force [file join $::tcltest::testsDirectory mkindex.itcl] \
		./mkindex.itcl
    }
    auto_mkindex . mkindex.itcl
    if {[pwd] != $::tcltest::testsDirectory} {
	file delete -force ./mkindex.itcl
    }
    file exists tclIndex
} {1}

set element "{source *[file join . mkindex.itcl]}"

test mkindex-1.3 {examine tclIndex} -body {
    namespace eval itcl_mkindex_tmp {
	set dir "."
	variable auto_index
	source -encoding utf-8 tclIndex
	set result ""
	foreach elem [lsort [array names auto_index]] {
	    lappend result [list $elem $auto_index($elem)]
	}
	set result
    }
} -match glob -result "{::Simple2::bump $element} {::Simple2::by $element} {::buried::deep::within $element} {::buried::ens $element} {::buried::inside $element} {::buried::inside::bump $element} {::buried::inside::by $element} {::buried::inside::find $element} {::buried::under::neath $element} {::top::find $element} {::top::notice $element} {Simple1 $element} {Simple2 $element} {ens $element} {top $element}"

file delete tclIndex
::tcltest::cleanupTests
return
