+ foreach($tags as $tag) {
+ handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
+ }
+
+ //correct tags found?
+ $this->assertEquals(1, count($tags));
+ $this->assertTrue(in_array("@Mike", $tags));
+
+ //correct output from handle_tag?
+ $this->assertEquals("cid:15", $inform);
+ $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
+ $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url]", $text);
+ }
+
+ /**
+ * test with one Person tag.
+ * There's a minor spelling mistake...
+ */
+ public function testGetTagsShortPersonSpelling() {
+ $text="hi @Mike.because";
+
+ $tags=get_tags($text);
+
+ //correct tags found?
+ $this->assertEquals(1, count($tags));
+ $this->assertTrue(in_array("@Mike.because", $tags));
+
+ $inform='';
+ $str_tags='';
+ handle_tag($this->a, $text, $inform, $str_tags, 11, $tags[0]);
+
+ // (mike) - This is a tricky case.
+ // we support mentions as in @mike@example.com - which contains a period.
+ // This shouldn't match anything unless you have a contact named "Mike.because".
+ // We may need another test for "@Mike. because" - which should return the contact
+ // as we ignore trailing periods in tags.
+
+// $this->assertEquals("cid:15", $inform);
+// $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
+// $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url].because", $text);
+
+ $this->assertEquals("", $inform);
+ $this->assertEquals("", $str_tags);
+
+ }
+
+ /**
+ * test with two Person tags.
+ * There's a minor spelling mistake...
+ */
+
+ public function testGetTagsPerson2Spelling() {
+ $text="hi @Mike@campino@friendica.eu";
+
+ $tags=get_tags($text);
+
+// This construct is not supported. Results are indeterminate
+// $this->assertEquals(2, count($tags));
+// $this->assertTrue(in_array("@Mike", $tags));
+// $this->assertTrue(in_array("@campino@friendica.eu", $tags));
+ }