public function testParseIncludes() { $manager = new Manager(); // Does a CSV string work $manager->parseIncludes('foo,bar'); $this->assertEquals(array('foo', 'bar'), $manager->getRequestedIncludes()); // Does a big array of stuff work $manager->parseIncludes(array('foo', 'bar', 'bar.baz')); $this->assertEquals(array('foo', 'bar', 'bar.baz'), $manager->getRequestedIncludes()); // Are repeated things stripped $manager->parseIncludes(array('foo', 'foo', 'bar')); $this->assertEquals(array('foo', 'bar'), $manager->getRequestedIncludes()); // Do requests for `baz.bart` also request `baz`? $manager->parseIncludes(array('foo.bar')); $this->assertEquals(array('foo', 'foo.bar'), $manager->getRequestedIncludes()); // See if fancy syntax works $manager->parseIncludes('foo:limit(5|1):order(-something)'); $this->assertEquals(array('limit' => array('5', '1'), 'order' => array('-something')), $manager->getIncludeParams('foo')); }