root/branches/release-40/t/26-pings.t @ 2573

Revision 2573, 2.8 kB (checked in by bchoate, 18 months ago)

Fixes for test suite.

  • Property svn:mime-type set to text/plain
  • Property svn:keywords set to Author Date Id Revision
Line 
1#!/usr/bin/perl
2# $Id$
3use strict;
4use warnings;
5
6use lib 't/lib';
7use lib 't/extlib';
8use lib 'lib';
9
10use Test::More tests => 14;
11
12use HTTP::Response;
13use Net::Ping;
14
15use MT;
16use MT::XMLRPC;
17use vars qw( $DB_DIR $T_CFG );
18
19use MT::Test qw(:db :data);
20
21my $mt = MT->new( Config => $T_CFG ) or die MT->errstr;
22isa_ok($mt, 'MT');
23
24my $blog = MT::Blog->load(1);
25isa_ok($blog, 'MT::Blog');
26
27_set_response(<<RES);
28    <<RES;
29<?xml version='1.0'?>
30<methodResponse>
31<params>
32<param>
33<value><struct>
34<member>
35<name>flerror</name>
36<value><boolean>0</boolean></value>
37</member>
38<member>
39<name>message</name>
40<value><string>Chomp! Thanks for the ping.</string></value>
41</member>
42</struct></value>
43</param>
44</params>
45</methodResponse>
46RES
47
48for (my $i = 1; $i < 7; $i++) {
49    SKIP: { skip('what?', 1); }
50}
51
52my $server = "192.168.1.104";
53my $p = Net::Ping->new();
54SKIP: {
55    skip("Test update server $server is unreachable", 5)
56        unless $p->ping($server);
57    ok(1, "ping");
58
59{
60my $res = MT::XMLRPC->ping_update('foo.ping', $blog,
61                                  'http://' . $server . '/mt-test-rpc.cgi');
62ok($res, 'ping_update');
63
64_set_response(<<RES);
65    <<RES;
66<?xml version='1.0'?>
67<methodResponse>
68<params>
69<param>
70<value><struct>
71<member>
72<name>flerror</name>
73<value><boolean>1</boolean></value>
74</member>
75<member>
76<name>message</name>
77<value>Sorry, but your ping failed!</value>
78</member>
79</struct></value>
80</param>
81</params>
82</methodResponse>
83RES
84}
85
86{
87my $res = MT::XMLRPC->ping_update('foo.ping', $blog, 'http://' . $server . '/mt-test-rpc.cgi');
88ok(!$res);
89ok(MT::XMLRPC->errstr, "Ping error: Sorry, but your ping failed!\n");
90
91_set_response(<<RES);
92    <<RES;
93<?xml version='1.0'?>
94<methodResponse>
95<params>
96<param>
97<value><struct>
98<member>
99<name>message</name>
100<value><string>Chomp! Thanks for the ping.</string></value>
101</member>
102<member>
103<name>flerror</name>
104<value><boolean>0</boolean></value>
105</member>
106</struct></value>
107</param>
108</params>
109</methodResponse>
110RES
111}
112
113{
114my $res = MT::XMLRPC->ping_update('foo.ping', $blog,
115                                  'http://' . $server . '/mt-test-rpc.cgi');
116ok($res, 'response');
117
118_set_response(<<RES);
119    <<RES;
120<?xml version='1.0'?>
121<methodResponse>
122<params>
123<param>
124<value><struct>
125<member>
126<name>message</name>
127<value>Sorry, but your ping failed!</value>
128</member>
129<member>
130<name>flerror</name>
131<value><boolean>1</boolean></value>
132</member>
133</struct></value>
134</param>
135</params>
136</methodResponse>
137RES
138}
139{
140MT::XMLRPC->error('');
141my $res = MT::XMLRPC->ping_update('foo.ping', $blog,
142                                  'http://'. $server. '/mt-test-rpc.cgi');
143ok(!$res, 'no response');
144is(MT::XMLRPC->errstr, "Ping error: Sorry, but your ping failed!\n", 'errstr');
145}
146}
147
148sub _set_response {
149    my($str) = @_;
150    no warnings 'once';
151    *HTTP::Response::content = sub { $str };
152}
Note: See TracBrowser for help on using the browser.