diff --git a/js/comment.jsonld b/js/comment.jsonld index 199f75dc..b334ff4b 100644 --- a/js/comment.jsonld +++ b/js/comment.jsonld @@ -9,6 +9,9 @@ "id": { "@type": "so:name" }, + "pasteid": { + "@type": "so:name" + }, "parentid": { "@type": "so:name" }, diff --git a/tst/Bootstrap.php b/tst/Bootstrap.php index a79c24b7..b0a80f6c 100644 --- a/tst/Bootstrap.php +++ b/tst/Bootstrap.php @@ -61,15 +61,17 @@ class Helper 128, 'aes', 'gcm', - 'zlib' + 'zlib', ), 'plaintext', 0, 0 ), - 'meta' => array( 'expire' => '5min' ), + 'meta' => array( + 'expire' => '5min', + ), 'v' => 2, - 'ct' => 'ME5JF/YBEijp2uYMzLZozbKtWc5wfy6R59NBb7SmRig=' + 'ct' => 'ME5JF/YBEijp2uYMzLZozbKtWc5wfy6R59NBb7SmRig=', ); /** @@ -84,7 +86,7 @@ class Helper * * @var array */ - private static $comment = array( + private static $commentV1 = array( 'data' => '{"iv":"Pd4pOKWkmDTT9uPwVwd5Ag","v":1,"iter":1000,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"ZIUhFTliVz4","ct":"6nOCU3peNDclDDpFtJEBKA"}', 'meta' => array( 'nickname' => '{"iv":"76MkAtOGC4oFogX/aSMxRA","v":1,"iter":1000,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"ZIUhFTliVz4","ct":"b6Ae/U1xJdsX/+lATud4sQ"}', @@ -113,23 +115,30 @@ class Helper /** * get example paste * + * @param int $version + * @param array $meta * @return array */ - public static function getPaste($meta = array()) + public static function getPaste($version = 2, $meta = array()) { - $example = self::getPasteWithAttachment($meta); - unset($example['attachment'], $example['attachmentname']); + $example = self::getPasteWithAttachment($version, $meta); + // v1 has the attachment stored in a separate property + if ($version === 1) { + unset($example['attachment'], $example['attachmentname']); + } return $example; } /** * get example paste * + * @param int $version + * @param array $meta * @return array */ - public static function getPasteWithAttachment($meta = array()) + public static function getPasteWithAttachment($version = 2, $meta = array()) { - $example = self::$pasteV1; + $example = $version === 1 ? self::$pasteV1 : self::$pasteV2; $example['meta']['salt'] = ServerSalt::generate(); $example['meta'] = array_merge($example['meta'], $meta); return $example; @@ -138,11 +147,13 @@ class Helper /** * get example paste * + * @param int $version + * @param array $meta * @return array */ - public static function getPasteAsJson($meta = array()) + public static function getPasteAsJson($version = 2, $meta = array()) { - $example = self::getPaste(); + $example = self::getPaste($version); // the JSON shouldn't contain the salt unset($example['meta']['salt']); if (count($meta)) { @@ -166,27 +177,40 @@ class Helper } /** - * get example comment + * get example comment, as stored on server / returned to user * + * @param int $version + * @param array $meta * @return array */ - public static function getComment($meta = array()) + public static function getComment($version = 2, $meta = array()) { - $example = self::$comment; + $example = $version === 1 ? self::$commentV1 : self::getPaste($version); + if ($version === 2) { + $example['pasteid'] = $example['parentid'] = self::getPasteId(); + $example['meta']['created'] = self::$commentV1['meta']['postdate']; + $example['meta']['icon'] = self::$commentV1['meta']['vizhash']; + unset($example['meta']['expire']); + } $example['meta'] = array_merge($example['meta'], $meta); return $example; } /** - * get example comment + * get example comment, as received via POST by user * + * @param int $version * @return array */ - public static function getCommentPost($meta = array()) + public static function getCommentPost($version = 2) { - $example = self::getComment($meta); - $example['nickname'] = $example['meta']['nickname']; - unset($example['meta']['nickname']); + $example = self::getComment($version); + if ($version === 1) { + $example['nickname'] = $example['meta']['nickname']; + unset($example['meta']['nickname']); + } else { + unset($example['meta']); + } return $example; }