.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Jifty::Test::WWW::Mechanize 3pm" .TH Jifty::Test::WWW::Mechanize 3pm "2011-04-14" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Jifty::Test::WWW::Mechanize \- Subclass of Test::WWW::Mechanize with extra Jifty features .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" Overrides Test::WWW::Mechanize's \f(CW\*(C`new\*(C'\fR to automatically give the bot a cookie jar. .SS "request" .IX Subsection "request" We override WWW::Mechanize's default request method so accept-encoding is not set to gzip by default. .SS "moniker_for \s-1ACTION\s0, \s-1FIELD1\s0 => \s-1VALUE1\s0, \s-1FIELD2\s0 => \s-1VALUE2\s0" .IX Subsection "moniker_for ACTION, FIELD1 => VALUE1, FIELD2 => VALUE2" Finds the moniker of the first action of type \fI\s-1ACTION\s0\fR whose \&\*(L"constructor\*(R" field \fI\s-1FIELD1\s0\fR is \fI\s-1VALUE1\s0\fR, and so on. .PP .Vb 1 \& my $mon = $mech\->moniker_for(\*(AqMyApp::Action::UpdateInfo\*(Aq); .Ve .PP If there is only one action of type \s-1ACTION\s0, be sure not to pass any more arguments to this method, or the method will return undef. .PP \&\s-1NOTE\s0 that if you're using this in a series of different pages or forms, you'll need to run it again for each new form: .PP .Vb 3 \& $mech\->fill_in_action_ok($mech\->moniker_for(\*(AqMyApp::Action::UpdateInfo\*(Aq), \& owner_id => \*(Aqsomeone\*(Aq); \& $mech\->submit_html_ok(); \& \& is($mech\->action_field_value($mech\->moniker_for("MyApp::Action::UpdateInfo"), \& \*(Aqowner_id\*(Aq), \& \*(Aqsomeone\*(Aq, \& "Owner was reassigned properly to owner \*(Aqsomeone\*(Aq"); .Ve .SS "fill_in_action \s-1MONIKER\s0, \s-1FIELD1\s0 => \s-1VALUE1\s0, \s-1FIELD2\s0 => \s-1VALUE2\s0, ..." .IX Subsection "fill_in_action MONIKER, FIELD1 => VALUE1, FIELD2 => VALUE2, ..." Finds the fields on the current page with the names \s-1FIELD1\s0, \s-1FIELD2\s0, etc in the \s-1MONIKER\s0 action, and fills them in. Returns the HTML::Form object of the form that the action is in, or undef if it can't find all the fields. .SS "fill_in_action_ok \s-1MONIKER\s0, \s-1FIELD1\s0 => \s-1VALUE1\s0, \s-1FIELD2\s0 => \s-1VALUE2\s0, ..." .IX Subsection "fill_in_action_ok MONIKER, FIELD1 => VALUE1, FIELD2 => VALUE2, ..." Finds the fields on the current page with the names \s-1FIELD1\s0, \s-1FIELD2\s0, etc in the \s-1MONIKER\s0 action, and fills them in. Returns the HTML::Form object of the form that the action is in, or undef if it can't find all the fields. .PP Also, passes if it finds all of the fields and fails if any of the fields are missing. .SS "action_form \s-1MONIKER\s0 [\s-1ARGUMENTNAMES\s0]" .IX Subsection "action_form MONIKER [ARGUMENTNAMES]" Returns the form (as an HTML::Form object) corresponding to the given moniker (which also contains inputs for the given argumentnames), and also selects it as the current form. Returns undef if it can't be found. .SS "action_field_input \s-1MONIKER\s0, \s-1FIELD\s0" .IX Subsection "action_field_input MONIKER, FIELD" Finds the field on the current page with the names \s-1FIELD\s0 in the action \s-1MONIKER\s0, and returns its HTML::Form::Input, or undef if it can't be found. .SS "action_field_value \s-1MONIKER\s0, \s-1FIELD\s0" .IX Subsection "action_field_value MONIKER, FIELD" Finds the field on the current page with the names \s-1FIELD\s0 in the action \s-1MONIKER\s0, and returns its value, or undef if it can't be found. .SS "send_action \s-1CLASS\s0 \s-1ARGUMENT\s0 => \s-1VALUE\s0, [ ... ]" .IX Subsection "send_action CLASS ARGUMENT => VALUE, [ ... ]" Sends a request to the server via the webservices \s-1API\s0, and returns the Jifty::Result of the action. \f(CW\*(C`CLASS\*(C'\fR specifies the class of the action, and all parameters thereafter supply argument keys and values. .PP The \s-1URI\s0 of the page is unchanged after this; this is accomplished by using the \*(L"back button\*(R" after making the webservice request. .SS "fragment_request \s-1PATH\s0 \s-1ARGUMENT\s0 => \s-1VALUE\s0, [ ... ]" .IX Subsection "fragment_request PATH ARGUMENT => VALUE, [ ... ]" Makes a request for the fragment at \s-1PATH\s0, using the webservices \s-1API\s0, and returns the string of the result. .SS "field_error_text \s-1MONIKER\s0, \s-1FIELD\s0" .IX Subsection "field_error_text MONIKER, FIELD" Finds the error span on the current page for the name \s-1FIELD\s0 in the action \s-1MONIKER\s0, and returns the text (tags stripped) from it. (If the field can't be found, return undef). .SS "uri" .IX Subsection "uri" WWW::Mechanize has a bug where it returns the wrong value for \&\f(CW\*(C`uri\*(C'\fR after redirect. This fixes that. See http://rt.cpan.org/NoAuth/Bug.html?id=9059 .SS "get_html_ok \s-1URL\s0" .IX Subsection "get_html_ok URL" Calls \f(CW\*(C`get\*(C'\fR \s-1URL\s0, followed by testing the \s-1HTML\s0 using Test::HTML::Lint. .SS "html_ok [\s-1STRING\s0]" .IX Subsection "html_ok [STRING]" Tests the current \f(CW\*(C`content\*(C'\fR using Test::HTML::Lint. If passed a string, tests against that instead of the current content. .SS "submit_html_ok" .IX Subsection "submit_html_ok" Calls \f(CW\*(C`submit\*(C'\fR, followed by testing the \s-1HTML\s0 using Test::HTML::Lint. .SS "follow_link_ok" .IX Subsection "follow_link_ok" Calls \f(CW\*(C`follow_link\*(C'\fR, followed by testing the \s-1HTML\s0 using Test::HTML::Lint. Warns if it cannot find the specified link (you should use \f(CW\*(C`ok\*(C'\fR on \f(CW\*(C`find_link\*(C'\fR first to check its existence). .SS "warnings_like \s-1WARNING\s0, [\s-1REASON\s0]" .IX Subsection "warnings_like WARNING, [REASON]" Tests that the warnings generated by the server (since the last such check) match the given \f(CW\*(C`WARNING\*(C'\fR, which should be a regular expression. If an array reference of regular expressions is passed as \&\f(CW\*(C`WARNING\*(C'\fR, checks that one warning per element was received. .SS "no_warnings_ok [\s-1REASON\s0]" .IX Subsection "no_warnings_ok [REASON]" Checks that no warnings were generated by the server (since the last such check). .SS "session" .IX Subsection "session" Returns the server-side Jifty::Web::Session object associated with this Mechanize object. .SS "continuation [\s-1ID\s0]" .IX Subsection "continuation [ID]" Returns the current continuation of the Mechanize object, if any. Or, given an \s-1ID\s0, returns the continuation with that \s-1ID\s0. .SS "current_user" .IX Subsection "current_user" Returns the Jifty::CurrentUser object or descendant, if any.