[Tͪ#n$;<:a4sX[u
in^(jZӕ6l܀4	YiԽd\{Xv[Mc߄.zh.tשxA$ T9;@C0$yՓ@9{$q/R|osAr{C
9XF&ޝ0}>LlwE(ڪT;ir@#VbfUxAF턾ijk)f\d",|M>f/yAXE<oy˪X\KX= ۔41":p5M&RFe&(3%iX?[.#*D)Xm"gn"ho`|#Ͷ(c*J+Dе%"	W
ZM9ٌP|QHi3yQb+oCP_ʝ&(8"nm0תnl(*iwb;
z-/q)1˘qώ>D3Г5ļe 릭4ڟ{umʾg2,vX\^8rdrծN:ө!޴T;{)CZ]S1M}˸at:[#/IF繆!oDpjb: ęM7NKonDƹƗU눣6]ftv+7a#kM~8IVd*|
'pC(jK\+8m"(=lC:6
)ԹLbIE~VYa|$?>7ʖ2ԱDtϠe,aZ͔dAFcSi=Kw0H ](UI)X+LtY\דmTHѕl$Ir[)&&(걧pR+hiBHBߓ@RM@>e;w쯁0L3Рg8$YhI½*Qx)ͷNKc.۔yfwúHm:坛2_+OMc?^OQMB7r^U;c%nʬ;DqTlL[:SGlL"1-$hb3*`χ>ēL芥7܀6}ȭ2xi2,Rf,Vo?T!敦_a8F	.xlԛ+EZ_P ߤPS{w圖LfUOA}s;[_%uġe$,VJ8];3{8@t0T)+b^gn#8s	sQ޹!Vǡ4L.ywv ͆HIBk.0jMP6dj ]h;lA	鷿hvmzcq7
ucmƧT8͟P%o?)vܫK-yp%;id}!4g碲i_$;(|;_ [!_·7Y ~6G@} PM/&W~ﲤ/_a&LV}Id0J;VbR}7QRv=ŝny
+@V|ȉRW\,AM~e\ӔO'aMB;]xeVRjdTJwӲ)e[,Y]pN	 vs[>EaT/P2zNd2~	[@Ça-2KOxGۃc=#QLoINz
v`HUϚvc36Ǡm[0՝!6MޝߙBRZvYl=2\RAη=JF7</7Y7ǎVփiC>icm!,tuw,㖯FukVYFB*Y(*7E QDwze@Ça-2KOxGۃc=#QL"7'5IUϚvc36ǠmZ[:`bğ!!6MޝߙBRԋXEG~QHXik%Bܻ%e@=>QJ_vA(a@g鴽_>]ĉ(n!D?Ꞛ(vۍ9di` 7UZ]%JI}Hds<-Ө[xqЙ E^cY{T;2YNQd}N8<9k+A-rSsid;7Cn"t[]QVeގc+Qmjp\Lћ:.tPYHXik%Bܻ%e@M,?X^ϚeJOo
#=tB{+켙ί|bL3$ ^tPaFywQ8ZW#c*fX9>FǋW-K=캡E^cY{T;2YNQd}NB/ KyA-rSsid;7Cn"t[]QVeގc+!3n92T\QKě:.tPYF$Dtc9RHO\=Ä\V6*p5\MjC*	07X<ΫK-!|-~ NvnPgɍ2$$Ԡ;tRj{ưA)	X+S P';-r[<e%jn!	B
QҎ=."('c/睠	>zVk?	~Jĩ T2$.a?!Y$Myѧ#D*rZ)$m鵓ol_~xח|y[z`,^zRGm!ŏvP=ׯWa:hH'9Y5Jr * iF<؄<e%jn!	B
QҎԺ]B?SH]>zVk?	~Jĩ T2$.ajx4^iJyD*rZG]15
ue2Ei;[xxoa'a=<oLs%Z'mWw.h
ȁh/FP	
BW~P`}RWט6"|̶ 黝d&]SNZvYl=2\RAη=JF7<qޥjT5փiC>icm!,tuw,㖯FukVYF.6@)> E QDwze@Ça-2KOxGۃc=#QLoINz
v`HUϚvc36Ǡm&Wa8^G!6MޝߙBRZvYl=2\RAη=JF7</7Y7ǎVփiC>icm!,tuw,㖯FukVYFm5F` ö4;Y~(JJ&yFnR#.UUJxv{&V,Rf,Vo?T!敦'aoPkdhb`֩Z;9Yv@2iڧؚP5Ms#|nSq)1˘qϚVk,?IHXik%Bܻ%e@w/OϖܲWEy/r,sd&v=4
?qVH~U|Ҽpú/v )W',)"Ѹ'sZ3FY(3BUѫcEAVfgU8'ύ&}0L_yZoG0u up ńbly something wrong */
        $this->waitForElement("byId", "insertForm");

        $this->assertEquals(
            "2",
            $this->byId("field_1_3")->value()
        );

        $this->assertEquals(
            "foo",
            $this->byId("field_2_3")->value()
        );

        $this->assertEquals(
            "2010-01-20 02:00:02",
            $this->byId("field_3_3")->value()
        );

        $this->byId("field_2_3")->clear();
        $this->byId("field_2_3")->value("foobar");
        $this->byId("field_3_3")->clear();
        $this->byId("field_3_3")->value("2009-01-20 02:00:02");

        $this->byId("buttonYes")->click();

        $success = $this->waitForElement("byClassName", "success");
        $this->assertContains("1 row affected", $success->text());

        $this->assertEquals(
            "foobar",
            $this->getCellByTableClass('table_results', 2, 6)
        );

        $this->assertEquals(
            "2009-01-20 02:00:02",
            $this->getCellByTableClass('table_results', 2, 7)
        );
    }

    /**
     * Test edit record by double click
     *
     * @return void
     *
     * @group large
     */
    public function testChangeRecordsByDoubleClick()
    {
        $element = $this->byCssSelector(
            "table.table_results tbody tr:nth-child(1) td:nth-child(6)"
        );

        $this->moveto($element);
        $this->doubleclick();

        $this->assertEquals(
            $this->byCssSelector("textarea.edit_box")->value(),
            "abcd"
        );

        $this->byCssSelector("textarea.edit_box")->clear();
        $this->byCssSelector("textarea.edit_box")->value("abcde");
        $this->keys(PHPUnit_Extensions_Selenium2TestCase_Keys::RETURN_);

        $success = $this->waitForElement(
            "byCssSelector", "span.ajax_notification div.success"
        );
        $this->assertContains("1 row affected", $success->text());

        $this->assertEquals(
            "abcde",
            $this->getCellByTableClass('table_results', 1, 6)
        );
    }

    /**
     * Test copy and insert record
     *
     * @return void
     *
     * @group large
     */
    public function testCopyRecords()
    {
        $this->byCssSelector(
            "table.table_results tbody tr:nth-child(3) td:nth-child(3) a"
        )->click();

        /* TODO: this occasionally fails, so there is probably something wrong */
        $this->waitForElement("byId", "insertForm");

        $this->assertEquals(
            "Abcd",
            $this->byId("field_2_3")->value()
        );

        $this->assertEquals(
            "2012-01-20 02:00:02",
            $this->byId("field_3_3")->value()
        );

        $this->byId("field_2_3")->clear();
        $this->byId("field_2_3")->value("ABCDEFG");
        $this->byId("field_3_3")->clear();
        $this->byId("field_3_3")->value("2012-01-20 02:05:02");

        $this->byId("buttonYes")->click();
        $success = $this->waitForElement("byClassName", "success");
        $this->assertContains("1 row inserted", $success->text());

        $this->assertEquals(
            "ABCDEFG",
            $this->getCellByTableClass('table_results', 4, 6)
        );

        $this->assertEquals(
            "2012-01-20 02:05:02",
            $this->getCellByTableClass('table_results', 4, 7)
        );
    }

    /**
     * Test search table
     *
     * @return void
     *
     * @group large
     */
    public function testSearchRecords()
    {
        $this->expandMore();

        $this->byLinkText("Search")->click();
        $this->waitForElement("byId", "tbl_search_form");

        $this->byId("fieldID_1")->value("abcd");
        $select = $this->select($this->byName("criteriaColumnOperators[1]"));
        $select->selectOptionByLabel("LIKE %...%");

        $this->byName("submit")->click();
        $success = $this->waitForElement("byClassName", "success");
        $this->assertContains("Showing rows", $success->text());

        $this->assertEquals(
            "1",
            $this->getCellByTableClass('table_results', 1, 5)
        );

        $this->assertEquals(
            "3",
            $this->getCellByTableClass('table_results', 2, 5)
        );
    }

    /**
     * Test delete multiple records
     *
     * @return void
     *
     * @group large
     */
    public function testDeleteRecords()
    {
        $this->byId("id_rows_to_delete1_left")->click();
        $this->byId("id_rows_to_delete2_left")->click();

        $this->byCssSelector("button[value=delete]")->click();
        $this->waitForElement("byCssSelector", "fieldset.confirmation");

        $this->byId("buttonYes")->click();
        $success = $this->waitForElement("byClassName", "success");
        $this->assertContains("Showing rows", $success->text());

        $this->assertFalse(
            $this->isElementPresent(
                "byCssSelector", "table.table_results tbody tr:nth-child(2)"
            )
        );

    }
}
