find('p')
            ->filter('.body:gt(1)');
        $result = array(
            'p.body',
        );
        $this->assertTrue( $pq->whois() == $result );
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testSlice( $pq ) {
        $testResult = array(
            'li#testID',
        );
        $pq = $pq->find('li')
            ->slice(1, 2);
        
        $this->assertTrue( $pq->whois() == $testResult );
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testSlice2( $pq ) {
        // SLICE2
        $testResult = array(
            'li#testID',
            'li',
            'li#i_have_nested_list',
            'li.nested',
        );
        $pq = $pq->find('li')
            ->slice(1, -1);
        
        $this->assertTrue( $pq->whois() == $testResult );
    }
    /**
     * @return void
     */
    function testMultiInsert() {
        // Multi-insert
        $pq = phpQuery::newDocument('
')
            ->find('.field1')
                ->php('longlongtest');
        $validResult = 'longlongtestlonglongtest';
        similar_text($pq->htmlOuter(), $validResult, $similarity);
        $this->assertGreaterThan( 80, $similarity);
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testIndex( $pq ) {
        $testResult = 1;
        $pq = $pq->find('p')
            ->index(
                $pq->find('p.title:first')
            );
        $this->assertTrue( $pq == $testResult );
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testClone( $pq ) {
        $testResult = 3;
        $document = null;
        $pq = $pq->toReference($document)
            ->find('p:first');
        
        foreach(array(0,1,2) as $i) {
            $pq->clone()
                ->addClass("clone-test")
                ->addClass("class-$i")
                ->insertBefore($pq);
        }
        $size = $document->find('.clone-test')->size();
        $this->assertEquals( $testResult, $size);
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testNextSibling( $pq ) {
        $testResult = 3;
        $document = null;
        $result = $pq->find('li:first')
            ->next()
            ->next()
            ->prev()
            ->is('#testID');
        $this->assertTrue( $result );
    }
    /**
     * @param phpQueryObject $pq
     * @dataProvider provider
     * @return void
     */
    function testSimpleDataInsertion( $pq ) {
        $testName = 'Simple data insertion';
        $testResult = <<
        div.articles text node
        
        - 
                This is paragraph of first LI News 1 title News 1 body 
- 
                This is paragraph of first LI News 2 title News 2 body 
- 
                This is paragraph of first LI News 3 News 3 body 
paragraph after UL
    
EOF;
        $rows = array(
            array(
                'title' => 'News 1 title',
                'body' => 'News 1 body',
            ),
            array(
                'title' => 'News 2 title',
                'body' => 'News 2 body',
            ),
            array(
                'title' => 'News 3',
                'body' => 'News 3 body',
            ),
        );
        $articles = $pq->find('.articles ul');
        $rowSrc = $articles->find('li')
                ->remove()
                ->eq(0);
        foreach ($rows as $r) {
            $row = $rowSrc->_clone();
            foreach ($r as $field => $value) {
                $row->find(".{$field}")
                        ->html($value);
                //		die($row->htmlOuter());
            }
            $row->appendTo($articles);
        }
        $result = $pq->find('.articles')->htmlOuter();
        //print htmlspecialchars("{$result}").'
';
        $similarity = 0.0;
        similar_text($testResult, $result, $similarity);
        $this->assertGreaterThan( 90, $similarity);
    }
//    function __construct() {
//        xdebug_break();
//        parent::__construct();
//    }
}
$test = new phpQueryBasicTest();
//$test->testFilterWithPseudoclass();
$result = null;
//$test->run($result);