diff --git a/lib/WebGUI/Account/Inbox.pm b/lib/WebGUI/Account/Inbox.pm index db3e03607..2eecedc2d 100644 --- a/lib/WebGUI/Account/Inbox.pm +++ b/lib/WebGUI/Account/Inbox.pm @@ -850,7 +850,7 @@ sub www_inviteUser { $var->{'submit_button' } = WebGUI::Form::submit($session,{}); $var->{'form_footer' } = WebGUI::Form::formFooter($session, {}); - $var->{'back_url' } = $session->env->get("HTTP_REFERER") || $var->{'view_inbox_url'}; + $var->{'back_url' } = $session->request->referer || $var->{'view_inbox_url'}; #Add common template variable for displaying the inbox $self->appendCommonVars($var); @@ -1099,7 +1099,7 @@ sub www_sendMessage { my $messageId = $form->get("messageId"); my $userId = $form->get("userId"); my $pageUrl = $session->url->page; - my $backUrl = $session->env->get("HTTP_REFERER") || $var->{'view_inbox_url'}; + my $backUrl = $session->request->referer || $var->{'view_inbox_url'}; my $errorMsg = ""; if($messageId) { diff --git a/lib/WebGUI/AdSpace.pm b/lib/WebGUI/AdSpace.pm index 4b670b70b..e898f4b16 100644 --- a/lib/WebGUI/AdSpace.pm +++ b/lib/WebGUI/AdSpace.pm @@ -52,7 +52,7 @@ sub countClick { my $session = shift; my $id = shift; my ($url) = $session->db->quickArray("select url from advertisement where adId=?",[$id]); - return $url if $session->env->requestNotViewed(); + return $url if $session->request->requestNotViewed(); $session->db->write("update advertisement set clicks=clicks+1 where adId=?",[$id]); return $url; } @@ -119,7 +119,7 @@ A boolean that tells the ad system not to count this impression if true. sub displayImpression { my $self = shift; my $dontCount = shift; - return '' if $self->session->env->requestNotViewed(); + return '' if $self->session->request->requestNotViewed(); my ($id, $ad, $priority, $clicks, $clicksBought, $impressions, $impressionsBought) = $self->session->db->quickArray("select adId, renderedAd, priority, clicks, clicksBought, impressions, impressionsBought from advertisement where adSpaceId=? and isActive=1 order by nextInPriority asc limit 1",[$self->getId]); unless ($dontCount) { my $isActive = 1; diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 68e2b7b13..116d69650 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -588,8 +588,8 @@ to SSL. sub checkView { my $self = shift; return $self->session->privilege->noAccess() unless $self->canView; - my ($conf, $env, $var, $http) = $self->session->quick(qw(config env var http)); - if ($conf->get("sslEnabled") && $self->get("encryptPage") && ! $env->sslRequest) { + my ($conf, $var, $http) = $self->session->quick(qw(config var http)); + if ($conf->get("sslEnabled") && $self->get("encryptPage") && ! $self->session->request->secure) { # getUrl already changes url to https if 'encryptPage' $http->setRedirect($self->getUrl); $http->sendHeader; @@ -1726,7 +1726,7 @@ sub getWwwCacheKey { my $session = $self->session; my $method = shift; my $cacheKey = join '_', @_, $self->getId; - if ($session->env->sslRequest) { + if ($session->request->secure) { $cacheKey .= '_ssl'; } return $cacheKey; diff --git a/lib/WebGUI/Asset/File/GalleryFile.pm b/lib/WebGUI/Asset/File/GalleryFile.pm index 6c9cb081f..21fad7b3b 100644 --- a/lib/WebGUI/Asset/File/GalleryFile.pm +++ b/lib/WebGUI/Asset/File/GalleryFile.pm @@ -697,7 +697,7 @@ sub processCommentEditForm { ; my $visitorIp = $session->user->isVisitor - ? $session->env->get("REMOTE_ADDR") + ? $session->request->remote_host : undef ; diff --git a/lib/WebGUI/Asset/MatrixListing.pm b/lib/WebGUI/Asset/MatrixListing.pm index d2239fad1..f6c9fbb7e 100644 --- a/lib/WebGUI/Asset/MatrixListing.pm +++ b/lib/WebGUI/Asset/MatrixListing.pm @@ -350,7 +350,7 @@ sub hasRated { my $hasRated = $self->session->db->quickScalar("select count(*) from MatrixListing_rating where ((userId=? and userId<>'1') or (userId='1' and ipAddress=?)) and listingId=?", - [$session->user->userId,$session->env->get("HTTP_X_FORWARDED_FOR"),$self->getId]); + [$session->user->userId,$session->request->env->{"HTTP_X_FORWARDED_FOR"}, $self->getId]); return $hasRated; } @@ -372,7 +372,7 @@ sub incrementCounter { my $db = $self->session->db; my $counter = shift; - my $currentIp = $self->session->env->get("HTTP_X_FORWARDED_FOR"); + my $currentIp = $self->session->request->env->{"HTTP_X_FORWARDED_FOR"}; unless ($self->get($counter."LastIp") && ($self->get($counter."LastIp") eq $currentIp)) { $self->update({ @@ -528,7 +528,7 @@ sub setRatings { $db->write("insert into MatrixListing_rating (userId, category, rating, timeStamp, listingId, ipAddress, assetId) values (?,?,?,?,?,?,?)", [$session->user->userId,$category,$ratings->{$category},time(),$self->getId, - $session->env->get("HTTP_X_FORWARDED_FOR"),$matrixId]); + $session->request->env->{"HTTP_X_FORWARDED_FOR"}, $matrixId]); } my $sql = "from MatrixListing_rating where listingId=? and category=?"; my $sum = $db->quickScalar("select sum(rating) $sql", [$self->getId,$category]); diff --git a/lib/WebGUI/Asset/Wobject/HttpProxy.pm b/lib/WebGUI/Asset/Wobject/HttpProxy.pm index 49e293922..c24ce5d7a 100644 --- a/lib/WebGUI/Asset/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Asset/Wobject/HttpProxy.pm @@ -310,7 +310,7 @@ sub view { return $self->processTemplate({},$self->templateId) unless ($proxiedUrl ne ""); - my $requestMethod = $self->session->env->get("REQUEST_METHOD") || "GET"; + my $requestMethod = $self->session->request->method || "GET"; ### Do we have cached content to get? my $cache = $self->session->cache; @@ -328,7 +328,7 @@ sub view { REDIRECT: for my $redirect (0..4) { # We follow max 5 redirects to prevent bouncing/flapping my $userAgent = new LWP::UserAgent; - $userAgent->agent($self->session->env->get("HTTP_USER_AGENT")); + $userAgent->agent($self->session->request->user_agent); $userAgent->timeout($self->timeout); $userAgent->env_proxy; diff --git a/lib/WebGUI/Asset/Wobject/ProjectManager.pm b/lib/WebGUI/Asset/Wobject/ProjectManager.pm index 1e5eaa3fc..9851078b1 100644 --- a/lib/WebGUI/Asset/Wobject/ProjectManager.pm +++ b/lib/WebGUI/Asset/Wobject/ProjectManager.pm @@ -1044,7 +1044,7 @@ sub www_drawGanttChart { } #Adjust top for MSIE - my $isMSIE = ($session->env->get("HTTP_USER_AGENT") =~ /msie/i); + my $isMSIE = ($session->env->request->user_agent =~ /msie/i); my $divTop = $isMSIE ? 45 : 45; #Start at 45 px and add 20px as the start of the new task #Set the propert mutiplier diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index 811b94db3..8f21cd39b 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -101,7 +101,7 @@ sub _logLogin { $_[1], time(), $self->session->request->address, - $self->session->env->get("HTTP_USER_AGENT"), + $self->session->request->user_agent, $self->session->getId, time(), ] @@ -539,7 +539,7 @@ sub displayLogin { ) { my $returnUrl = $self->session->form->get('returnUrl') - || $self->session->url->page( $self->session->env->get('QUERY_STRING') ) + || $self->session->url->page( $self->session->request->env->{'QUERY_STRING'} ) ; $self->session->scratch->set("redirectAfterLogin", $returnUrl); } diff --git a/lib/WebGUI/Content/Prefetch.pm b/lib/WebGUI/Content/Prefetch.pm index 4c61556ed..dc721a899 100644 --- a/lib/WebGUI/Content/Prefetch.pm +++ b/lib/WebGUI/Content/Prefetch.pm @@ -46,7 +46,7 @@ The content handler for this package. sub handler { my ($session) = @_; - if ($session->env->get("HTTP_X_MOZ") eq "prefetch") { # browser prefetch is a bad thing + if ($session->request->env->{"HTTP_X_MOZ"} eq "prefetch") { # browser prefetch is a bad thing $session->http->setStatus(403); } return undef; diff --git a/lib/WebGUI/Form/Captcha.pm b/lib/WebGUI/Form/Captcha.pm index a0130a126..1c99ac37b 100644 --- a/lib/WebGUI/Form/Captcha.pm +++ b/lib/WebGUI/Form/Captcha.pm @@ -158,10 +158,9 @@ sub toHtml { my $self = shift; if ($self->session->setting->get('useRecaptcha')) { - my $env = $self->session->env; my $pubKey = $self->session->setting->get('recaptchaPublicKey'); my $server = "http://api.recaptcha.net"; - if ($env->sslRequest) { + if ($self->session->request->secure) { $server = "https://api-secure.recaptcha.net"; } return diff --git a/lib/WebGUI/Macro/Env.pm b/lib/WebGUI/Macro/Env.pm index a12c1b779..295cf36db 100644 --- a/lib/WebGUI/Macro/Env.pm +++ b/lib/WebGUI/Macro/Env.pm @@ -32,7 +32,8 @@ then undef will be returned. #------------------------------------------------------------------- sub process { my $session = shift; - return $session->env->get(shift); + my $key = shift; + return $session->request->env->{$key}; } 1; diff --git a/lib/WebGUI/Macro/L_loginBox.pm b/lib/WebGUI/Macro/L_loginBox.pm index a2b82b8da..a9feadc7b 100644 --- a/lib/WebGUI/Macro/L_loginBox.pm +++ b/lib/WebGUI/Macro/L_loginBox.pm @@ -79,18 +79,18 @@ sub process { # A hidden field with the current URL my $returnUrl = $session->url->page; if ( !$session->form->get("op") eq "auth" ) { - $returnUrl .= '?' . $session->env->get( "QUERY_STRING" ); + $returnUrl .= '?' . $session->request->env->{ "QUERY_STRING" }; } $var{'form.returnUrl'} = WebGUI::Form::hidden( $session, { name => 'returnUrl', - value => $session->url->page($session->env->get("QUERY_STRING")), + value => $session->url->page($session->request->env->{"QUERY_STRING"}), }); # Fix box size my $boxSize = $param[0]; $boxSize = 12 unless ($boxSize); - if (index(lc($session->env->get("HTTP_USER_AGENT")),"msie") < 0) { + if (index(lc($session->request->user_agent),"msie") < 0) { $boxSize = int($boxSize=$boxSize*2/3); } diff --git a/lib/WebGUI/Macro/r_printable.pm b/lib/WebGUI/Macro/r_printable.pm index d327c7714..2774a6c62 100644 --- a/lib/WebGUI/Macro/r_printable.pm +++ b/lib/WebGUI/Macro/r_printable.pm @@ -54,7 +54,7 @@ sub process { my $append = 'op=makePrintable'; $temp = $session->url->page($append); $temp =~ s/\/\//\//; - $temp = $session->url->append($temp,$session->env->get("QUERY_STRING")); + $temp = $session->url->append($temp,$session->request->env->{"QUERY_STRING"}); if ($param[1] ne "") { $temp = $session->url->append($temp,'styleId='.$param[1]); } diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index 1a153b6a3..ffe0b4002 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -26,7 +26,6 @@ use WebGUI::Config; use WebGUI::SQL; use WebGUI::User; use WebGUI::Session::DateTime; -use WebGUI::Session::Env; use WebGUI::Session::ErrorHandler; use WebGUI::Session::Form; use WebGUI::Session::Http; @@ -66,7 +65,6 @@ B It is important to distinguish the difference between a WebGUI session $session->datetime $session->db $session->dbSlave - $session->env $session->log $session->form $session->http @@ -171,7 +169,7 @@ sub close { # Kill circular references. The literal list is so that the order # can be explicitly shuffled as necessary. - foreach my $key (qw/_asset _datetime _icon _slave _db _env _form _http _id _output _privilege _scratch _setting _stow _style _url _user _var _cache _errorHandler _response _request/) { + foreach my $key (qw/_asset _datetime _icon _slave _db _form _http _id _output _privilege _scratch _setting _stow _style _url _user _var _cache _errorHandler _response _request/) { delete $self->{$key}; } } @@ -308,23 +306,6 @@ sub duplicate { } -#------------------------------------------------------------------- - -=head2 env ( ) - -Returns a WebGUI::Session::Env object. - -=cut - -sub env { - my $self = shift; - unless (exists $self->{_env}) { - $self->{_env} = WebGUI::Session::Env->new($self); - } - return $self->{_env}; -} - - #------------------------------------------------------------------- =head2 errorHandler ( ) @@ -486,6 +467,7 @@ sub open { if (! $env) { my $url = 'http://' . $config->get('sitename')->[0]; my $request = HTTP::Request::Common::GET($url); + $request->headers->user_agent('WebGUI'); $env = $request->to_psgi; } diff --git a/lib/WebGUI/Session/Env.pm b/lib/WebGUI/Session/Env.pm deleted file mode 100644 index 583d621ea..000000000 --- a/lib/WebGUI/Session/Env.pm +++ /dev/null @@ -1,179 +0,0 @@ -package WebGUI::Session::Env; - -=head1 LEGAL - - ------------------------------------------------------------------- - WebGUI is Copyright 2001-2009 Plain Black Corporation. - ------------------------------------------------------------------- - Please read the legal notices (docs/legal.txt) and the license - (docs/license.txt) that came with this distribution before using - this software. - ------------------------------------------------------------------- - http://www.plainblack.com info@plainblack.com - ------------------------------------------------------------------- - -=cut - -use strict; - -=head1 NAME - -Package WebGUI::Session::Env - -=head1 DESCRIPTION - -This package allows you to reference environment variables. - -=head1 SYNOPSIS - -$env = WebGUI::Session::Env->new; - -$value = $env->get('REMOTE_ADDR'); - -return 'not gonna see it' if $env->requestNotViewed() ; - -=head1 METHODS - -These methods are available from this package: - -=cut - - -#------------------------------------------------------------------- - -=head2 callerIsSearchSite ( ) - -Returns true if the remote address matches a site which is a known indexer or spider. - -=cut - -sub callerIsSearchSite { - - my $self = shift; - my $remoteAddress = $self->getIp; - - return 1 if $remoteAddress =~ /203\.87\.123\.1../ # Blaiz Enterprise Rawgrunt search - || $remoteAddress =~ /123\.113\.184\.2../ # Unknown Yahoo Robot - || $remoteAddress == ''; - - return 0; - -} - - -#------------------------------------------------------------------- - -=head2 clientIsSpider ( ) - -Returns true is the client/agent is a spider/indexer or some other non-human interface, determined -by checking the user agent against a list of known spiders. - -=cut - - -sub clientIsSpider { - - my $self = shift; - my $userAgent = $self->get('HTTP_USER_AGENT'); - - return 1 if $userAgent eq '' - || $userAgent =~ m<(^wre\/| # the WRE wget's http://localhost/ every 2-3 minutes 24 hours a day... - ^morpheus| - libwww| - s[pb]ider| - bot| - robo| - sco[ou]t| - crawl| - miner| - reaper| - finder| - search| - engine| - download| - fetch| - scan| - slurp)>ix; - - return 0; - -} - -#------------------------------------------------------------------- - -=head2 get( varName ) - -Retrieves the current value of an environment variable. - -=head3 varName - -The name of the variable. - -=cut - -sub get { - my $self = shift; - my $var = shift; - return $$self->{$var}; -} - - -#------------------------------------------------------------------- - -=head2 new ( ) - -Constructor. Returns an env object. - -=cut - -sub new { - my $class = shift; - my $session = shift; - my $env; - if ($session->request) { - $env = $session->request->env; - } - else { - $env = {}; - } - return bless \$env, $class; -} - -#------------------------------------------------------------------- - -=head2 requestNotViewed ( ) - -Returns true is the client/agent is a spider/indexer or some other non-human interface - -=cut - -sub requestNotViewed { - - my $self = shift; - return $self->clientIsSpider(); - # || $self->callerIsSearchSite(); # this part is currently left out because - # it has minimal effect and does not manage - # IPv6 addresses. it may be useful in the - # future though - -} - -#------------------------------------------------------------------- - -=head2 sslRequest ( ) - -Returns true if a https request was made. - -HTTP_SSLPROXY is set by mod_proxy in the WRE so that WebGUI knows that the original request -was made via SSL. - -=cut - -sub sslRequest { - my $self = shift; - return $self->get('psgi.url_scheme') eq 'https'; -} - - -1; - diff --git a/lib/WebGUI/Session/Request.pm b/lib/WebGUI/Session/Request.pm index 2a9113529..393a7cf46 100644 --- a/lib/WebGUI/Session/Request.pm +++ b/lib/WebGUI/Session/Request.pm @@ -17,6 +17,68 @@ is created. =head1 METHODS +=cut + +#------------------------------------------------------------------- + +=head2 clientIsSpider ( ) + +Returns true is the client/agent is a spider/indexer or some other non-human interface, determined +by checking the user agent against a list of known spiders. + +=cut + +sub clientIsSpider { + + my $self = shift; + my $userAgent = $self->user_agent; + + return 1 if $userAgent eq '' + || $userAgent =~ m<(^wre\/| # the WRE wget's http://localhost/ every 2-3 minutes 24 hours a day... + ^morpheus| + libwww| + s[pb]ider| + bot| + robo| + sco[ou]t| + crawl| + miner| + reaper| + finder| + search| + engine| + download| + fetch| + scan| + slurp)>ix; + + return 0; + +} + +#------------------------------------------------------------------- + +=head2 callerIsSearchSite ( ) + +Returns true if the remote address matches a site which is a known indexer or spider. + +=cut + +sub callerIsSearchSite { + + my $self = shift; + my $remoteAddress = $self->address; + + return 1 if $remoteAddress =~ /203\.87\.123\.1../ # Blaiz Enterprise Rawgrunt search + || $remoteAddress =~ /123\.113\.184\.2../ # Unknown Yahoo Robot + || $remoteAddress == ''; + + return 0; + +} + +#------------------------------------------------------------------- + =head2 new_response () Creates a new L object. @@ -32,9 +94,29 @@ sub new_response { return WebGUI::Session::Response->new(@_); } +#------------------------------------------------------------------- + +=head2 requestNotViewed ( ) + +Returns true is the client/agent is a spider/indexer or some other non-human interface + +=cut + +sub requestNotViewed { + + my $self = shift; + return $self->clientIsSpider(); + # || $self->callerIsSearchSite(); # this part is currently left out because + # it has minimal effect and does not manage + # IPv6 addresses. it may be useful in the + # future though + +} + + # This is only temporary sub TRACE { shift->env->{'psgi.errors'}->print(join '', @_, "\n"); } -1; \ No newline at end of file +1; diff --git a/lib/WebGUI/Session/Style.pm b/lib/WebGUI/Session/Style.pm index ed449cb06..7258c4016 100644 --- a/lib/WebGUI/Session/Style.pm +++ b/lib/WebGUI/Session/Style.pm @@ -131,7 +131,7 @@ sub useMobileStyle { if (! $session->setting->get('useMobileStyle')) { return $self->{_useMobileStyle} = 0; } - my $ua = $session->env->get('HTTP_USER_AGENT'); + my $ua = $session->request->user_agent; for my $mobileUA (@{ $self->session->config->get('mobileUserAgents') }) { if ($ua =~ m/$mobileUA/) { return $self->{_useMobileStyle} = 1; diff --git a/lib/WebGUI/Session/Url.pm b/lib/WebGUI/Session/Url.pm index 2cb72a587..08dc3bd9a 100644 --- a/lib/WebGUI/Session/Url.pm +++ b/lib/WebGUI/Session/Url.pm @@ -136,7 +136,7 @@ sub extras { my $cdnCfg = $self->session->config->get('cdn'); if ( $cdnCfg and $cdnCfg->{'enabled'} and $cdnCfg->{'extrasCdn'} ) { unless ( $path and grep $path =~ m/$_/, @{ $cdnCfg->{'extrasExclude'} } ) { - if ($cdnCfg->{'extrasSsl'} && $self->session->env->sslRequest) { + if ($cdnCfg->{'extrasSsl'} && $self->session->request->secure) { $url = $cdnCfg->{'extrasSsl'}; } else { @@ -258,7 +258,7 @@ Returns the URL of the page this request was refered from (no gateway, no query sub getRefererUrl { my $self = shift; - my $referer = $self->session->env->get("HTTP_REFERER"); + my $referer = $self->session->request->referer; return undef unless ($referer); my $url = $referer; my $gateway = $self->session->config->get("gateway"); @@ -289,20 +289,20 @@ is not passed in, it will attempt to get one from the L method, or finally sub forceSecureConnection { my $self = shift; my $url = shift; - my ($conf, $env, $http) = $self->session->quick(qw(config env http)); + my ($conf, $http) = $self->session->quick(qw(config http)); - if ($conf->get("sslEnabled") && !$env->sslRequest){ + if ($conf->get("sslEnabled") && ! $self->session->request->secure){ - $url = $self->session->url->page if(! $url); - $url = $env->get('QUERY_STRING') if(! $url); + my $query_string = $self->session->request->env->{'QUERY_STRING'}; + $url = $url || $self->page || $query_string; my $siteURL = $self->getSiteURL(); if($url !~ /^$siteURL/i){ $url = $siteURL . $url; } - if($env->get('QUERY_STRING')){ - $url .= "?". $env->get('QUERY_STRING'); + if($query_string){ + $url .= "?". $query_string; } if($url =~ /^http/i) { $url =~ s/^https?/https/i; @@ -347,14 +347,14 @@ sub getSiteURL { unless ($self->{_siteUrl}) { my $site = ""; my $sitenames = $self->session->config->get("sitename"); - my ($http_host,$currentPort) = split(':', $self->session->env->get("HTTP_HOST")); + my ($http_host,$currentPort) = split(':', $self->session->request->env->{"HTTP_HOST"}); if ($self->session->setting->get("hostToUse") eq "HTTP_HOST" and isIn($http_host,@{$sitenames})) { $site = $http_host; } else { $site = $sitenames->[0]; } my $proto = "http://"; - if ($self->session->env->sslRequest) { + if ($self->session->request->secure) { $proto = "https://"; } my $port = ""; diff --git a/lib/WebGUI/Storage.pm b/lib/WebGUI/Storage.pm index 477ff3342..eb11e3a7d 100644 --- a/lib/WebGUI/Storage.pm +++ b/lib/WebGUI/Storage.pm @@ -1284,7 +1284,7 @@ sub getUrl { and -e $self->getPath . '/.cdn' ) { my $sep = '/'; # separator, if not already present trailing - if ($cdnCfg->{'sslAlt'} && $self->session->env->sslRequest) { + if ($cdnCfg->{'sslAlt'} && $self->session->request->secure) { if ( $cdnCfg->{'sslUrl'} ) { substr( $cdnCfg->{'sslUrl'}, -1 ) eq '/' and $sep = ''; $url = $cdnCfg->{'sslUrl'} . $sep . $self->getDirectoryId; diff --git a/lib/WebGUI/TabForm.pm b/lib/WebGUI/TabForm.pm index 73b84915d..3e09ad0af 100644 --- a/lib/WebGUI/TabForm.pm +++ b/lib/WebGUI/TabForm.pm @@ -206,7 +206,7 @@ sub new { } my $i18n = WebGUI::International->new($session); my $cancelJS = 'history.go(-1);'; - if (my $cancelURL = $session->env->get('HTTP_REFERER')) { + if (my $cancelURL = $session->request->referer) { $cancelJS = sprintf q{window.location.href='%s';}, $cancelURL; } my $cancel = WebGUI::Form::button($session,{ diff --git a/t/Asset/Post/Thread.t b/t/Asset/Post/Thread.t index 06877053e..be944216a 100644 --- a/t/Asset/Post/Thread.t +++ b/t/Asset/Post/Thread.t @@ -57,15 +57,6 @@ my $uncommittedThread = $collab->addChild($props, @addArgs); # Test for a sane object type isa_ok($thread, 'WebGUI::Asset::Post::Thread'); -my $env = $session->env; -$env = Test::MockObject::Extends->new($env); - -my %mockEnv = ( - REMOTE_ADDR => '192.168.0.2', -); - -$env->mock('get', sub { return $mockEnv{$_[1]}}); - $session->user({userId => 3}); $thread->rate(1); $thread->trash; diff --git a/t/Asset/Wobject/InOutBoard.t b/t/Asset/Wobject/InOutBoard.t index 253084d4b..d1b47a85a 100644 --- a/t/Asset/Wobject/InOutBoard.t +++ b/t/Asset/Wobject/InOutBoard.t @@ -144,6 +144,7 @@ cmp_bag( dateStamp => ignore(), message => 'work time', username => 'red', + department => 'No Department', }, ignore(), ignore(), ignore(), ignore(), ], diff --git a/t/Macro/L_loginBox.t b/t/Macro/L_loginBox.t index 376705cbc..43eb67524 100644 --- a/t/Macro/L_loginBox.t +++ b/t/Macro/L_loginBox.t @@ -30,7 +30,7 @@ $session->user({userId=>1}); ##known user agent. Since it usually contains a reference to %ENV, ##you can't just modify that hash since it's protected my $env = $session->request->env; -$env->{'HTTP_USER_AGENT'} = 'mozilla'; +$session->request->headers->user_agent('mozilla'); $env->{'QUERY_STRING'} = 'func=search'; my $i18n = WebGUI::International->new($session,'Macro_L_loginBox'); @@ -102,7 +102,7 @@ is($vars{'form.footer'}, WebGUI::Form::formFooter($session), 'form.footer'); is( $vars{'form.returnUrl'}, WebGUI::Form::hidden( $session, { name => 'returnUrl', - value => $session->url->page($session->env->get("QUERY_STRING")), + value => $session->url->page($session->request->env->{"QUERY_STRING"}), }), 'form.returnUrl' ); @@ -119,7 +119,7 @@ like($vars{'username.form'}, qr/size="16"/, 'boxSize set in username.form'); like($vars{'password.form'}, qr/size="16"/, 'boxSize set in password.form'); ##Change browser to be MSIE like and watch boxSize change -$env->{'HTTP_USER_AGENT'} = 'msie'; +$session->request->headers->user_agent('msie'); $output = WebGUI::Macro::L_loginBox::process($session,24,'Log In',$template->getId); %vars = simpleTextParser($output); diff --git a/t/Session/CheckClient.t b/t/Session/CheckClient.t index 1ea0aaab6..b43e29eb6 100644 --- a/t/Session/CheckClient.t +++ b/t/Session/CheckClient.t @@ -185,9 +185,9 @@ sub testCount { plan tests => testCount() ; foreach my $testSet (@testArray) { - $session->request->env->{HTTP_USER_AGENT} = $testSet->{agent}; + $session->request->headers->user_agent($testSet->{agent}); $session->request->env->{REMOTE_ADDR} = $testSet->{address} || '69.42.78.32'; - my $output = $session->env->requestNotViewed; + my $output = $session->request->requestNotViewed; is($output, $testSet->{output}, $testSet->{comment}); } diff --git a/t/Session/Env.t b/t/Session/Env.t deleted file mode 100644 index 850b56b80..000000000 --- a/t/Session/Env.t +++ /dev/null @@ -1,28 +0,0 @@ -#------------------------------------------------------------------- -# WebGUI is Copyright 2001-2009 Plain Black Corporation. -#------------------------------------------------------------------- -# Please read the legal notices (docs/legal.txt) and the license -# (docs/license.txt) that came with this distribution before using -# this software. -#------------------------------------------------------------------- -# http://www.plainblack.com info@plainblack.com -#------------------------------------------------------------------- - -use FindBin; -use strict; -use lib "$FindBin::Bin/../lib"; - -use WebGUI::Test; -use WebGUI::Session; - -use Test::More tests => 2; # increment this value for each test you create - -my $session = WebGUI::Test->session; - - -cmp_ok($session->env->get("REMOTE_ADDR"), 'ne', "", "get() one valid entry"); - -my $env = $session->env; -$session->request->env->{REMOTE_ADDR} = '192.168.0.2'; -#is ($env->getIp, '192.168.0.2', 'getIp'); - diff --git a/t/Session/Url.t b/t/Session/Url.t index e70b9893f..231a6a1f4 100644 --- a/t/Session/Url.t +++ b/t/Session/Url.t @@ -50,7 +50,7 @@ my @getRefererUrlTests = ( ); use Test::More; -plan tests => 83 + scalar(@getRefererUrlTests); +plan tests => 82 + scalar(@getRefererUrlTests); my $session = WebGUI::Test->session; my $request = $session->request; @@ -242,12 +242,8 @@ $session->asset($sessionAsset); # ####################################### -$env->{'HTTP_REFERER'} = 'test'; - -is($session->env->get('HTTP_REFERER'), 'test', 'testing overridden ENV'); - foreach my $test (@getRefererUrlTests) { - $env->{HTTP_REFERER} = $test->{input}; + $session->request->referer($test->{input}); is($session->url->getRefererUrl, $test->{output}, $test->{comment}); } diff --git a/t/lib/WebGUI/Test.pm b/t/lib/WebGUI/Test.pm index de921d88b..20bb59550 100644 --- a/t/lib/WebGUI/Test.pm +++ b/t/lib/WebGUI/Test.pm @@ -216,6 +216,7 @@ sub newEnv { ? HTTP::Request::Common::POST( $url, [ %$form ] ) : HTTP::Request::Common::GET( $url ) ; + $request->headers->user_agent('WebGUI'); } return $request->to_psgi; }