/** * @return WebElementProxy * @dataProvider proxyDataProvider */ public function testProxyWebElement($element_class, $proxy_class) { $search_context = m::mock('\\aik099\\QATools\\PageObject\\ISearchContext'); $this->locator->shouldReceive('getSearchContext')->andReturn($search_context); $node_element = $this->createNodeElement(); $this->locator->shouldReceive('findAll')->andReturn(array($node_element)); $this->property->shouldReceive('isSimpleDataType')->andReturn(false); $this->property->shouldReceive('getDataType')->andReturn($element_class); $proxy = $this->decorator->decorate($this->property); $this->assertProxy($proxy, $proxy_class, $search_context, $element_class); $this->assertEquals($node_element->getXpath(), $proxy->getXpath()); return $proxy; }
/** * Initializes fields within given search context. * * @param ISearchContext $search_context Search context. * @param IPropertyDecorator $property_decorator Property decorator. * * @return self */ protected function proxyFields(ISearchContext $search_context, IPropertyDecorator $property_decorator) { foreach ($this->getProperties($search_context) as $property) { $proxy = $property_decorator->decorate($property); if ($proxy !== null) { $property->setAccessible(true); $property->setValue($search_context, $proxy); } } return $this; }