| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 | 
							- <?php
 
- /**
 
-  * Regular expression tests for the wire
 
-  */
 
- class TheWireRegexTest extends ElggCoreUnitTest {
 
- 	/**
 
- 	 * Called before each test object.
 
- 	 */
 
- 	public function __construct() {
 
- 		$this->ia = elgg_set_ignore_access(TRUE);
 
- 		parent::__construct();
 
- 		// all __construct() code should come after here
 
- 	}
 
- 	/**
 
- 	 * Called before each test method.
 
- 	 */
 
- 	public function setUp() {
 
- 	}
 
- 	/**
 
- 	 * Called after each test method.
 
- 	 */
 
- 	public function tearDown() {
 
- 		// do not allow SimpleTest to interpret Elgg notices as exceptions
 
- 		$this->swallowErrors();
 
- 	}
 
- 	/**
 
- 	 * Called after each test object.
 
- 	 */
 
- 	public function __destruct() {
 
- 		elgg_set_ignore_access($this->ia);
 
- 		// all __destruct() code should go above here
 
- 		parent::__destruct();
 
- 	}
 
- 	/**
 
- 	 * Get the link for a user's wire page
 
- 	 *
 
- 	 * @param string $username Username
 
- 	 * @return string
 
- 	 */
 
- 	protected function getUserWireLink($username) {
 
- 		$url = "thewire/owner/$username";
 
- 		$url = elgg_normalize_url($url);
 
- 		return "<a href=\"$url\">@$username</a>";
 
- 	}
 
- 	/**
 
- 	 * Get the link for a hashtag page
 
- 	 *
 
- 	 * @param string $tag Tag string
 
- 	 * @return string
 
- 	 */
 
- 	protected function getHashtagLink($tag) {
 
- 		$url = "thewire/tag/$tag";
 
- 		$url = elgg_normalize_url($url);
 
- 		return "<a href=\"$url\">#$tag</a>";
 
- 	}
 
- 	/**
 
- 	 * Get a link for an email address mailto
 
- 	 *
 
- 	 * @param string $address Email address
 
- 	 * @return string
 
- 	 */
 
- 	protected function getEmailLink($address) {
 
- 		return "<a href=\"mailto:$address\">$address</a>";
 
- 	}
 
- 	/**
 
- 	 * Get the html for a link
 
- 	 *
 
- 	 * @param string $address URL
 
- 	 * @return string
 
- 	 */
 
- 	protected function getLink($address) {
 
- 		return parse_urls($address);
 
- 	}
 
- 	/**
 
- 	 * Usernames: @user
 
- 	 */
 
- 	public function testReplaceUsernames() {
 
- 		// beginning of text
 
- 		$text = "@user test";
 
- 		$expected = $this->getUserWireLink('user') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// after space
 
- 		$text = "test @user test";
 
- 		$expected = "test " . $this->getUserWireLink('user') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by comma
 
- 		$text = "test @user, test";
 
- 		$expected = "test " . $this->getUserWireLink('user') . ", test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		
 
- 		// preceded by comma
 
- 		$text = "test ,@user test";
 
- 		$expected = "test ," . $this->getUserWireLink('user') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// include digit
 
- 		$text = "@3user test";
 
- 		$expected = $this->getUserWireLink('3user') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// include underscore
 
- 		$text = "@user_name test";
 
- 		$expected = $this->getUserWireLink('user_name') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// parentheses
 
- 		$text = "test (@user) test";
 
- 		$expected = "test (" . $this->getUserWireLink('user') . ") test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// utf8 characters
 
- 		$text = "@tyúkanyó";
 
- 		$expected = $this->getUserWireLink('tyúkanyó');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 	}
 
- 	/**
 
- 	 * Hashtags: #tag
 
- 	 */
 
- 	public function testReplaceHashtags() {
 
- 		// tag at beginning
 
- 		$text = "#tag test";
 
- 		$expected = $this->getHashtagLink('tag') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// tag not at beginning
 
- 		$text = "test #tag test";
 
- 		$expected = "test " . $this->getHashtagLink('tag') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by comma
 
- 		$text = "test #tag, test";
 
- 		$expected = "test " . $this->getHashtagLink('tag') . ", test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// preceded by comma
 
- 		$text = "test,#tag test";
 
- 		$expected = "test," . $this->getHashtagLink('tag') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by period
 
- 		$text = "test #tag. test";
 
- 		$expected = "test " . $this->getHashtagLink('tag') . ". test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// parentheses
 
- 		$text = "test (#tag) test";
 
- 		$expected = "test (" . $this->getHashtagLink('tag') . ") test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// include number
 
- 		$text = "test #tag2000 test";
 
- 		$expected = "test " . $this->getHashtagLink('tag2000') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// cannot be just a number
 
- 		$text = "test #1 test";
 
- 		$expected = $text;
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- }
 
- 	/**
 
- 	 * Email: johndoe@gmail.com
 
- 	 */
 
- 	public function testReplaceEmailAddress() {
 
- 		// email at beginning of text
 
- 		$text = "test@test.com test";
 
- 		$expected = $this->getEmailLink('test@test.com') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// after space
 
- 		$text = "test test@test.com test";
 
- 		$expected = "test " . $this->getEmailLink('test@test.com') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by comma
 
- 		$text = "test test@test.com, test";
 
- 		$expected = "test " . $this->getEmailLink('test@test.com') . ", test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// preceded by comma
 
- 		$text = "test,test@test.com test";
 
- 		$expected = "test," . $this->getEmailLink('test@test.com') . " test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by period
 
- 		$text = "test test@test.com. test";
 
- 		$expected = "test " . $this->getEmailLink('test@test.com') . ". test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// parentheses
 
- 		$text = "test (test@test.com) test";
 
- 		$expected = "test (" . $this->getEmailLink('test@test.com') . ") test";
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// includes digits
 
- 		$text = "user1@domain1.com";
 
- 		$expected = $this->getEmailLink('user1@domain1.com');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// includes underscore
 
- 		$text = "user_name@domain.com";
 
- 		$expected = $this->getEmailLink('user_name@domain.com');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// includes period
 
- 		$text = "user.name@domain.com";
 
- 		$expected = $this->getEmailLink('user.name@domain.com');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// includes subdomains
 
- 		$text = "user.name@domain.com.uk";
 
- 		$expected = $this->getEmailLink('user.name@domain.com.uk');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 	}
 
- 	/**
 
- 	 * Links: http://www.example.org/
 
- 	 */
 
- 	public function testReplaceLinks() {
 
- 		// beginning of text
 
- 		$text = "http://www.test.org";
 
- 		$expected = $this->getLink('http://www.test.org');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// not at beginning of text
 
- 		$text = "test http://www.test.org";
 
- 		$expected = 'test ' . $this->getLink('http://www.test.org');
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by comma
 
- 		$text = "test http://www.test.org, test";
 
- 		$expected = 'test ' . $this->getLink('http://www.test.org') . ', test';
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// preceeded by comma
 
- 		$text = "test,http://www.test.org test";
 
- 		$expected = 'test,' . $this->getLink('http://www.test.org') . ' test';
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// followed by period
 
- 		$text = "test http://www.test.org. test";
 
- 		$expected = 'test ' . $this->getLink('http://www.test.org') . '. test';
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// surrounded by parentheses
 
- 		$text = "test (http://www.test.org) test";
 
- 		$expected = 'test (' . $this->getLink('http://www.test.org') . ') test';
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 		// no http://
 
- 		$text = "test www.test.org test";
 
- 		$expected = 'test ' . $this->getLink('www.test.org') . ' test';
 
- 		$result = thewire_filter($text);
 
- 		$this->assertEqual($result, $expected);
 
- 	}
 
- }
 
 
  |