* tests/redirect.test,channel.test: adding tests for new features of Rivet 2.2.1


diff --git a/ChangeLog b/ChangeLog
index 5ec98ab..f0bf922 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2015-01-12 Massimo Manghi <mxmanghi@apache.org>
+    * tests/redirect.test,channel.test: adding tests for new features of Rivet 2.2.1
+
 2015-01-08 Massimo Manghi <mxmanghi@apache.org>
     * doc/xml/commands.xml: documenting the ::rivet::redirect command
     * doc/xml/directives.xml: add SeparateChannels directive documentation
diff --git a/tests/channel.tcl b/tests/channel.tcl
new file mode 100644
index 0000000..a86fea2
--- /dev/null
+++ b/tests/channel.tcl
@@ -0,0 +1,2 @@
+
+puts -nonewline [fconfigure stdout -buffersize]
diff --git a/tests/channel.test b/tests/channel.test
new file mode 100644
index 0000000..339cf86
--- /dev/null
+++ b/tests/channel.test
@@ -0,0 +1,28 @@
+# checking the channel management
+
+foreach {sep_channel offset_value} {On 0 Off 1} {
+
+::tcltest::test channel-1.1 [list checking SeparateChannel] {
+	apachetest::start {} "
+RivetServerConf SeparateVirtualInterps  On
+RivetServerConf SeparateChannels        $sep_channel
+NameVirtualHost 127.0.0.1
+<VirtualHost 127.0.0.1>
+    ServerName vhost1
+    RivetServerConf ChildInitScript \"fconfigure stdout -buffersize 8192\"
+</VirtualHost>
+
+<VirtualHost 127.0.0.1>
+    ServerName vhost2
+    RivetServerConf ChildInitScript \"fconfigure stdout -buffersize 16384\"
+</VirtualHost>
+" {
+    set page1 [::http::geturl "${urlbase}channel.tcl" -headers [list Host vhost1]]
+    set page2 [::http::geturl "${urlbase}channel.tcl" -headers [list Host vhost2]]
+
+    puts "[::http::data $page1] [::http::data $page2]"
+    set diff [expr ([::http::data $page2]-[::http::data $page1] != 0) + $offset_value]
+}
+set diff
+} {1}
+}
diff --git a/tests/redirect.rvt b/tests/redirect.rvt
new file mode 100644
index 0000000..db4cf1a
--- /dev/null
+++ b/tests/redirect.rvt
@@ -0,0 +1,8 @@
+<?
+    ::rivet::apache_log_error info "running redirect.rvt"
+    if {[::rivet::var_qs exists base]} {
+        
+        ::rivet::apache_log_error info "diverting browser to [::rivet::var_qs get base]"
+        ::rivet::redirect [::rivet::var_qs get base]
+    }
+?>
diff --git a/tests/redirect.test b/tests/redirect.test
new file mode 100644
index 0000000..883bce1
--- /dev/null
+++ b/tests/redirect.test
@@ -0,0 +1,26 @@
+# redirect.test -- test redirect command.
+#
+# redirect must trigger an AbortScript and have
+# predictable data stored in the abort code
+
+# $Id: $
+
+::tcltest::test redirect-1.1 {redirect command} {
+    apachetest::start {} {
+        RivetServerConf AbortScript "::rivet::apache_log_error err \\\"catching redirect\\\""
+        RivetServerConf AbortScript "set tmpfp \[open redirect_code.txt w+\]"
+        RivetServerConf AbortScript "puts \$tmpfp \[::rivet::abort_code\]"
+        RivetServerConf AbortScript "close \$tmpfp"
+        RivetServerConf AbortScript "touch /tmp/aaaaaa"
+    } {
+        set url "${urlbase}redirect.rvt?base=$urlbase"
+        #puts $url
+        catch {set page1 [::http::geturl $url]}
+        puts "verifying abort code"
+        set rdfp [open redirect_code.txt r]
+        set redirect_code [dict create {*}[read $rdfp]]
+        set r1 [dict exists $redirect_code location]
+        set r2 [dict exists $redirect_code error_code]
+    } 
+    list $r1 $r2
+} {1 1}
diff --git a/tests/rivet.test b/tests/rivet.test
index b19af46..6aa8dec 100755
--- a/tests/rivet.test
+++ b/tests/rivet.test
@@ -67,6 +67,8 @@
         parsepackage.test
         virtualhost.test
         inspect.test 
+        redirect.test
+        channel.test
     } {
         puts "Running $Test"
         source $Test