diff --git a/plugins/OStatus/tests/slap.php b/plugins/OStatus/tests/slap.php new file mode 100644 index 0000000000..b5f9d3e073 --- /dev/null +++ b/plugins/OStatus/tests/slap.php @@ -0,0 +1,92 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$longoptions = array('verify', 'slap=', 'notice='); + +$helptext = << send signed Salmon slap to the destination endpoint + + +END_OF_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (!have_option('--notice')) { + print "$helptext"; + exit(1); +} + +$notice_id = get_option_value('--notice'); + +$notice = Notice::staticGet('id', $notice_id); +$profile = $notice->getProfile(); +$entry = $notice->asAtomEntry(true); + +echo "== Original entry ==\n\n"; +print $entry; +print "\n\n"; + +$salmon = new Salmon(); +$envelope = $salmon->createMagicEnv($entry, $profile); + +echo "== Signed envelope ==\n\n"; +print $envelope; +print "\n\n"; + +echo "== Testing local verification ==\n\n"; +$ok = $salmon->verifyMagicEnv($envelope); +if ($ok) { + print "OK\n\n"; +} else { + print "FAIL\n\n"; +} + +if (have_option('--verify')) { + $url = 'http://www.madebymonsieur.com/ostatus_discovery/magic_env/validate/'; + echo "== Testing remote verification ==\n\n"; + print "Sending for verification to $url ...\n"; + + $client = new HTTPClient(); + $response = $client->post($url, array(), array('magic_env' => $envelope)); + + print $response->getStatus() . "\n\n"; + print $response->getBody() . "\n\n"; +} + +if (have_option('--slap')) { + $url = get_option_value('--slap'); + echo "== Remote salmon slap ==\n\n"; + print "Sending signed Salmon slap to $url ...\n"; + + $ok = $salmon->post($url, $entry, $profile); + if ($ok) { + print "OK\n\n"; + } else { + print "FAIL\n\n"; + } +}