function it_set_endpoint_capabilities(TokenInterface $token, CollatorInterface $collator) { $collator->get(Argument::exact(Capabilities::IS_CONSOLE))->shouldBeCalledTimes(1)->willReturn(null); $collator->set(Argument::exact(Capabilities::IS_CONSOLE), Argument::exact(false))->shouldBeCalledTimes(1); $collator->get(Argument::exact(Capabilities::IS_MOBILE))->shouldBeCalledTimes(1)->willReturn(null); $collator->set(Argument::exact(Capabilities::IS_DESKTOP), Argument::exact(true))->shouldBeCalledTimes(1); $collator->get(Argument::exact(Capabilities::IS_SMART_TV))->shouldBeCalledTimes(1)->willReturn(false); $collator->set(Argument::exact(Capabilities::IS_SMART_TV), Argument::exact(false))->shouldBeCalledTimes(1); $collator->get(Argument::exact(Capabilities::IS_BOT))->shouldBeCalledTimes(2)->willReturn(false); $collator->set(Argument::exact(Capabilities::IS_BOT), Argument::exact(false))->shouldBeCalledTimes(1); $collator->set(Argument::exact(Capabilities::IS_MOBILE), Argument::exact(false))->shouldBeCalledTimes(1); $this->visit($token, $collator)->shouldReturn(VisitorInterface::STATE_SEEKING); }
/** * {@inheritdoc} */ public function visit(TokenInterface $token, CollatorInterface $collator) { $collator->set(Capabilities::IS_CONSOLE, !$this->hasEmptyCapability($collator, Capabilities::IS_CONSOLE)); $collator->set(Capabilities::IS_BOT, !$this->hasEmptyCapability($collator, Capabilities::IS_BOT)); $isMobile = $this->hasEmptyCapability($collator, Capabilities::IS_MOBILE); $collator->set(Capabilities::IS_DESKTOP, $isMobile && $this->hasEmptyCapability($collator, Capabilities::IS_BOT)); $collator->set(Capabilities::IS_MOBILE, !$isMobile); $collator->set(Capabilities::IS_SMART_TV, !$this->hasEmptyCapability($collator, Capabilities::IS_SMART_TV)); return self::STATE_SEEKING; }