@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at upstream/main 152 lines 3.7 kB view raw
1<?php 2 3final class DiffusionCommitRemarkupRuleTestCase extends PhabricatorTestCase { 4 5 public function testProjectObjectRemarkup() { 6 $cases = array( 7 '{rP12f3f6d3a9ef9c7731051815846810cb3c4cd248}' => array( 8 'embed' => array( 9 array( 10 'offset' => 1, 11 'id' => 'rP12f3f6d3a9ef9c7731051815846810cb3c4cd248', 12 ), 13 ), 14 'ref' => array( 15 array( 16 'offset' => 1, 17 'id' => 'rP12f3f6d3a9ef9c7731051815846810cb3c4cd248', 18 ), 19 ), 20 ), 21 '{rP1234, key=value}' => array( 22 'embed' => array( 23 array( 24 'offset' => 1, 25 'id' => 'rP1234', 26 'tail' => ', key=value', 27 ), 28 ), 29 'ref' => array( 30 array( 31 'offset' => 1, 32 'id' => 'rP1234', 33 ), 34 ), 35 ), 36 '{rP1234 key=value}' => array( 37 'embed' => array( 38 array( 39 'offset' => 1, 40 'id' => 'rP1234', 41 'tail' => ' key=value', 42 ), 43 ), 44 'ref' => array( 45 array( 46 'offset' => 1, 47 'id' => 'rP1234', 48 ), 49 ), 50 ), 51 '{rP:1234 key=value}' => array( 52 'embed' => array( 53 array( 54 'offset' => 1, 55 'id' => 'rP:1234', 56 'tail' => ' key=value', 57 ), 58 ), 59 'ref' => array( 60 array( 61 'offset' => 1, 62 'id' => 'rP:1234', 63 ), 64 ), 65 ), 66 '{R123:1234 key=value}' => array( 67 'embed' => array( 68 array( 69 'offset' => 1, 70 'id' => 'R123:1234', 71 'tail' => ' key=value', 72 ), 73 ), 74 'ref' => array( 75 array( 76 'offset' => 1, 77 'id' => 'R123:1234', 78 ), 79 ), 80 ), 81 '{rP:12f3f6d3a9ef9c7731051815846810cb3c4cd248}' => array( 82 'embed' => array( 83 array( 84 'offset' => 1, 85 'id' => 'rP:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 86 ), 87 ), 88 'ref' => array( 89 array( 90 'offset' => 1, 91 'id' => 'rP:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 92 ), 93 ), 94 ), 95 '{R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248}' => array( 96 'embed' => array( 97 array( 98 'offset' => 1, 99 'id' => 'R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 100 ), 101 ), 102 'ref' => array( 103 array( 104 'offset' => 1, 105 'id' => 'R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 106 ), 107 ), 108 ), 109 '{R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248, key=value}' => array( 110 'embed' => array( 111 array( 112 'offset' => 1, 113 'id' => 'R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 114 'tail' => ', key=value', 115 ), 116 ), 117 'ref' => array( 118 array( 119 'offset' => 1, 120 'id' => 'R123:12f3f6d3a9ef9c7731051815846810cb3c4cd248', 121 ), 122 ), 123 ), 124 125 // After an "@", we should not be recognizing references because these 126 // are username mentions. 127 'deadbeef' => array( 128 'embed' => array( 129 ), 130 'ref' => array( 131 array( 132 'offset' => 0, 133 'id' => 'deadbeef', 134 ), 135 ), 136 ), 137 '@deadbeef' => array( 138 'embed' => array( 139 ), 140 'ref' => array( 141 ), 142 ), 143 ); 144 145 foreach ($cases as $input => $expect) { 146 $rule = new DiffusionCommitRemarkupRule(); 147 $matches = $rule->extractReferences($input); 148 $this->assertEqual($expect, $matches, $input); 149 } 150 } 151 152}