1#!perl -t 2 3use warnings; 4use strict; 5use Test::More; 6use Test::Deep; 7 8use lib "t/lib"; 9use Test::MockPushover; 10 11 12use_ok "WebService::Pushover" or BAIL_OUT "WebService::Pushover failed. Cannot continue testing"; 13 14my $API_TOKEN = "abcdefghijklmnopqrstuvwxyz1234"; 15my $USER_TOKEN = "1234abcdefghijklmnopqrstuvwxyz"; 16 17spin_mock_server(user_token => $USER_TOKEN, api_token => $API_TOKEN); 18 19my $user = '0123abcdefghijklmnopqrstuvwxyz'; 20my $token = 'abcdefghijklmnopqrstuvwxyz0123'; 21 22pushover_ok 'message', { 23 token => $token, 24 user => $user, 25 message => "test message", 26},{ 27 headers => ignore, 28 path => '/1/messages.json', 29 data => { 30 message => 'test+message', 31 user => $user, 32 token => $token, 33 }, 34}, "passing tokens to message() overrides the built-ins"; 35 36pushover_ok 'message', { 37 message => "test message", 38},{ 39 headers => ignore, 40 path => '/1/messages.json', 41 data => { 42 message => 'test+message', 43 user => $USER_TOKEN, 44 token => $API_TOKEN, 45 }, 46}, "passing no token/user to message() uses built-ins"; 47 48pushover_ok 'message', { 49 message => q|abcdefghijklmnopqrstuvwxyz01234567889!@#$%^&*()-=_+`~[]\\{}\|;:'"/?.><|, 50},{ 51 headers => ignore, 52 path => '/1/messages.json', 53 data => superhashof({ 54 message => q|abcdefghijklmnopqrstuvwxyz01234567889!%40%23%24%25%5E%26*()-%3D_%2B%60~%5B%5D%5C%7B%7D%7C%3B%3A'%22%2F%3F.%3E%3C|, 55 }), 56}, "Odd characters are escaped properly"; 57 58pushover_ok 'message', { 59 message => 'test', 60 device => 'abcdefghijklmnopqrstuvwxy', 61 title => 'Title', 62 timestamp => 0, 63 priority => -1, 64 retry => 300, 65 expire => 1, 66 callback => 'http://asdf.com', 67 url => 'http://perl.org', 68 url_title => 'Perl!', 69 sound => 'bugle', 70},{ 71 headers => ignore, 72 path => '/1/messages.json', 73 data => { 74 message => 'test', 75 device => 'abcdefghijklmnopqrstuvwxy', 76 title => 'Title', 77 timestamp => 0, 78 priority => -1, 79 retry => 300, 80 expire => 1, 81 callback => 'http%3A%2F%2Fasdf.com', 82 url => 'http%3A%2F%2Fperl.org', 83 url_title => 'Perl!', 84 sound => 'bugle', 85 token => $API_TOKEN, 86 user => $USER_TOKEN, 87 }, 88}, "message() with all the options gets generated properly"; 89 90done_testing; 91