/** * @test */ public function findWordsReturnsWordWithInjectedVars() { $group = new \Bookmarks\Group(); $group->title = '{group.title}'; $link = new \Bookmarks\Link(); $link->title = '{link.title}'; $link->url = 'http://{link.domain}.de'; $link->tags = array('{link.tag}'); $group->addLink($link); $config = new \Bookmarks\Config(); $config->addGroup($group); $env = new \Bookmarks\Environment(); $env->inject('group.title', 'mytitle'); $env->inject('link.title', 'mylinktitle'); $env->inject('link.domain', 'mydomain'); $env->inject('link.tag', 'mytag'); $search = new \Bookmarks\Search($config); $search->injectEnvironment($env); $this->assertEquals(array('mytitle'), $search->findWords('mytitle'), 'search should find replaced string in group title'); $this->assertEquals(array('mylinktitle'), $search->findWords('mylinktitle'), 'search should find replaced string in link title'); $this->assertEquals(array('mydomain'), $search->findWords('mydomain'), 'search should find replaced string in link url'); $this->assertEquals(array('mytag'), $search->findWords('mytag'), 'search should find replaced string in link tag'); }
/** * @test */ public function showLinkReplacesUserVariables() { $link = new \Bookmarks\Link(); $link->title = 'my {domain}'; $link->url = 'http://{domain}.de'; $link->tags = array('tag {domain}', 'tag2'); $env = new \Bookmarks\Environment(); $env->inject('domain', 'abc'); $view = new \Bookmarks\View(); $view->injectEnvironment($env); $actual = (string) $view->showLink($link); $this->assertStringContains('my abc', $actual, 'html should replace {domain} and contain "my abc" title'); $this->assertStringContains('my abc', $actual, 'html should replace {domain} and contain url "http://abc.de"'); $this->assertStringContains('my abc', $actual, 'html should replace {domain} and contain tag "tag abc"'); }
<?php require_once __DIR__ . '/../vendor/autoload.php'; use Bookmarks\Storage; use Bookmarks\View; use Bookmarks\Controller; $server = filter_input_array(INPUT_SERVER, FILTER_SANITIZE_STRING); $get = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING); $post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); $request = array_merge(is_null($get) ? array() : $get, is_null($post) ? array() : $post); $env = new \Bookmarks\Environment(); $env->inject('subdomain', 'dev'); // replace all {subdomain} parts with dev $storage = new Storage('../config/links.json'); $view = new View('../cache'); $controller = new Controller($storage, $view); $controller->injectEnvironment($env); echo $controller->parseRequest($server['REQUEST_METHOD'], $request);