From: Brion Vibber Date: Wed, 5 Jan 2011 22:27:53 +0000 (-0800) Subject: Salmon slap / magicsig test script X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e25c34a2b60c4d6050896e51c63f1ba52dfbc45f;p=quix0rs-gnu-social.git Salmon slap / magicsig test script Given a notice in the local system, we package it up as an Atom entry and MagicSig it up. We run the magicenv verification on it locally to make sure our own functions can decode it. Optionally with --verify we can send to Tuomas Koski's verification test service (not sure if this is working 100%) If given --slap= with a target Salmon endpoint, we'll sent it on and see if it liked it. (Note that StatusNet will reject if there's not a relevant mention, but will report acceptance for dupes so you can use a message that's already been delivered as a test.) --- 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"; + } +}