swallowErrors(); global $CONFIG; unset($CONFIG->externals); } /** * Called after each test object. */ public function __destruct() { // all __destruct() code should go above here parent::__destruct(); } /** * Test elgg_instanceof() */ public function testElggInstanceOf() { $entity = new ElggObject(); $entity->subtype = 'test_subtype'; $entity->save(); $this->assertTrue(elgg_instanceof($entity)); $this->assertTrue(elgg_instanceof($entity, 'object')); $this->assertTrue(elgg_instanceof($entity, 'object', 'test_subtype')); $this->assertFalse(elgg_instanceof($entity, 'object', 'invalid_subtype')); $this->assertFalse(elgg_instanceof($entity, 'user', 'test_subtype')); $entity->delete(); $bad_entity = FALSE; $this->assertFalse(elgg_instanceof($bad_entity)); $this->assertFalse(elgg_instanceof($bad_entity, 'object')); $this->assertFalse(elgg_instanceof($bad_entity, 'object', 'test_subtype')); } /** * Test elgg_normalize_url() */ public function testElggNormalizeURL() { $conversions = array( 'http://example.com' => 'http://example.com', 'https://example.com' => 'https://example.com', '//example.com' => '//example.com', 'example.com' => 'http://example.com', 'example.com/subpage' => 'http://example.com/subpage', 'pg/page/handler' => elgg_get_site_url() . 'pg/page/handler', 'pg/page/handler?p=v&p2=v2' => elgg_get_site_url() . 'pg/page/handler?p=v&p2=v2', 'mod/plugin/file.php' => elgg_get_site_url() . 'mod/plugin/file.php', 'mod/plugin/file.php?p=v&p2=v2' => elgg_get_site_url() . 'mod/plugin/file.php?p=v&p2=v2', 'rootfile.php' => elgg_get_site_url() . 'rootfile.php', 'rootfile.php?p=v&p2=v2' => elgg_get_site_url() . 'rootfile.php??p=v&p2=v2', '/pg/page/handler' => elgg_get_site_url() . 'pg/page/handler', '/pg/page/handler?p=v&p2=v2' => elgg_get_site_url() . 'pg/page/handler?p=v&p2=v2', '/mod/plugin/file.php' => elgg_get_site_url() . 'mod/plugin/file.php', '/mod/plugin/file.php?p=v&p2=v2' => elgg_get_site_url() . 'mod/plugin/file.php?p=v&p2=v2', '/rootfile.php' => elgg_get_site_url() . 'rootfile.php', '/rootfile.php?p=v&p2=v2' => elgg_get_site_url() . 'rootfile.php??p=v&p2=v2', ); foreach ($conversions as $input => $output) { $this->assertIdentical($output, elgg_normalize_url($input)); } } /** * Test elgg_register_js() */ public function testElggRegisterJS() { global $CONFIG; // specify id $result = elgg_register_js('//test1.com', 'key', 'footer'); $this->assertTrue($result); $this->assertIdentical('//test1.com', $CONFIG->externals['javascript']['footer']['key']); // let Elgg pick id $result = elgg_register_js('//test2.com'); $this->assertTrue($result); $this->assertIdentical('//test2.com', $CONFIG->externals['javascript']['head'][0]); // send a bad url $result = elgg_register_js(); $this->assertFalse($result); } /** * Test elgg_register_css() */ public function testElggRegisterCSS() { global $CONFIG; // specify id $result = elgg_register_css('//test1.com', 'key'); $this->assertTrue($result); $this->assertIdentical('//test1.com', $CONFIG->externals['css']['head']['key']); // let Elgg pick id $result = elgg_register_css('//test2.com'); $this->assertTrue($result); $this->assertIdentical('//test2.com', $CONFIG->externals['css']['head'][1]); // send a bad url $result = elgg_register_js(); $this->assertFalse($result); } /** * Test elgg_unregister_js() */ public function testElggUnregisterJS() { global $CONFIG; $urls = array('id1' => '//url1.com', 'id2' => '//url2.com', 'id3' => '//url3.com'); foreach ($urls as $id => $url) { elgg_register_js($url, $id); } $result = elgg_unregister_js('id1'); $this->assertTrue($result); $this->assertNULL($CONFIG->externals['javascript']['head']['id1']); $result = elgg_unregister_js('', '//url2.com'); $this->assertTrue($result); $this->assertNULL($CONFIG->externals['javascript']['head']['id2']); $result = elgg_unregister_js('id1'); $this->assertFalse($result); $result = elgg_unregister_js('', '//url2.com'); $this->assertFalse($result); $this->assertIdentical($urls['id3'], $CONFIG->externals['javascript']['head']['id3']); } /** * Test elgg_get_js() */ public function testElggGetJS() { global $CONFIG; $urls = array('id1' => '//url1.com', 'id2' => '//url2.com', 'id3' => '//url3.com'); foreach ($urls as $id => $url) { elgg_register_js($url, $id); } $js_urls = elgg_get_js('head'); $this->assertIdentical($js_urls[0], $urls['id1']); $this->assertIdentical($js_urls[1], $urls['id2']); $this->assertIdentical($js_urls[2], $urls['id3']); $js_urls = elgg_get_js('footer'); $this->assertIdentical(array(), $js_urls); } }