Annotation of loncom/interface/lontest.pm, revision 1.6
1.3 albertel 1: # The LearningOnline Network with CAPA
2: # A debugging harness.
3: #
1.6 ! albertel 4: # $Id: lontest.pm,v 1.5 2002/06/26 14:01:50 www Exp $
1.3 albertel 5: #
6: # Copyright Michigan State University Board of Trustees
7: #
8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
9: #
10: # LON-CAPA is free software; you can redistribute it and/or modify
11: # it under the terms of the GNU General Public License as published by
12: # the Free Software Foundation; either version 2 of the License, or
13: # (at your option) any later version.
14: #
15: # LON-CAPA is distributed in the hope that it will be useful,
16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18: # GNU General Public License for more details.
19: #
20: # You should have received a copy of the GNU General Public License
21: # along with LON-CAPA; if not, write to the Free Software
22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23: #
24: # /home/httpd/html/adm/gpl.txt
25: #
26: # http://www.lon-capa.org/
27: #
1.1 www 28: #
29:
30: package Apache::lontest;
31:
32: use strict;
33: use Apache::Constants qw(:common :http);
1.5 www 34: use GDBM_File;
1.1 www 35:
1.4 bowersj2 36: # section takes one env var name as input, and returns
37: # what section the given env var is in, which is the part
38: # of the env var before the first period.
39: # Returns the section, or blank string for 'no section',
40: # which is normal for the standard ENV vars like REQUEST_URI.
41: sub section
42: {
43: my ($name) = @_;
44: return $1 if $name =~ m/\A([^.]*)\./;
45: return '';
46: }
47:
1.1 www 48: sub handler {
49: my $r = shift;
50: $r->content_type('text/html');
51: $r->send_http_header;
52: return OK if $r->header_only;
53:
54: $r->print('<html><body>');
55:
56: my $envkey;
57:
58: $->print("<hr><h1>Debugging</h1><hr>\n");
1.4 bowersj2 59: $->print("<font face='Courier'>");
1.1 www 60:
1.2 www 61: my $i=0;
1.4 bowersj2 62: my $interval = 20; # change this to change how many keys/table
63: my $prevSection = ''; # keeps track of the section we're in.
1.1 www 64: foreach $envkey (sort keys %ENV) {
1.4 bowersj2 65: if (not ($i % $interval))
66: {
67: $r->print('</table>') unless $i eq 0;
68: $r->print('<table border="0">')
69: }
70: my $sec = section($envkey);
71:
72: if ($prevSection ne $sec) # new section, print header
73: {
74: $r->print('<tr><td colspan="2">');
75: $r->print("<br><br><h2 style='color: #008800'><u>$sec</u></h2>");
76: $r->print('</td></tr>');
77: $prevSection = $sec;
78: }
79:
80: my $envVal = $ENV{$envkey};
81: $envVal =~ s/(.{50})/\1\<wbr\>/g;
82: $envkey =~ s/(.{30})/\1\<wbr\>/g;
83:
84: $r->print("<tr><td valign='top'><b>$envkey</b></td>");
85: $r->print("<td valign='top'>$envVal</td></tr>\n");
86: $i++;
1.1 www 87: }
1.2 www 88:
1.4 bowersj2 89: $r->print('</table></font><h1>Total Number of Elements: '.$i.'</h1>');
1.5 www 90:
91: # ------------------------------------------------ If in a course, print hashes
92: if ($ENV{'request.course.id'}) {
93:
94: my %parmhash;
95: my %hash;
96:
97: my $fn=$ENV{'request.course.fn'};
98:
1.6 ! albertel 99: if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) &&
1.5 www 100: (tie(%parmhash,'GDBM_File',
101: $ENV{'request.course.fn'}.'_parms.db',
1.6 ! albertel 102: &GDBM_READER(),0640))) {
1.5 www 103: $r->print('<h2>Big Hash</h2>');
104: foreach (sort keys %hash) {
105: $r->print("\n<br>".$_.': '.$hash{$_});
106: }
107: $r->print('<h2>Parm Hash</h2>');
108: foreach (sort keys %parmhash) {
109: $r->print("\n<br>".$_.': '.$parmhash{$_});
110: }
111: untie %hash;
112: untie %parmhash;
113: }
114:
115:
116: }
1.1 www 117:
118: # ------------------------------------------------------------------- End Debug
119: $r->print('</body></html>');
120: }
1.4 bowersj2 121:
1.1 www 122:
123: 1;
124: __END__
125:
126:
127:
128:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>