<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
*/
require_once 'CiviTest/CiviSeleniumTestCase.php';
+
+/**
+ * Class WebTest_Contact_TagSetSearchTest
+ */
class WebTest_Contact_TagSetSearchTest extends CiviSeleniumTestCase {
protected function setUp() {
parent::setUp();
}
- function testTagSetSearch() {
+ public function testTagSetSearch() {
$this->webtestLogin();
$tagSet1 = $this->_testAddTagSet();
$this->webtestAddContact($contact1, "Anderson", "{$contact1}@example.com");
$this->click('css=li#tab_tag a');
- $this->waitForElementPresent("token-input-contact_taglist_{$tagSet1}");
+ $this->waitForElementPresent("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input");
// Add tag1 for Individual 1
$tag1 = substr(sha1(rand()), 0, 5);
- $this->click("css=input#token-input-contact_taglist_{$tagSet1}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
- $this->typeKeys("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
+ $this->click("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input");
+ $this->keyDown("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", " ");
+ $this->type("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", $tag1);
+ $this->typeKeys("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", $tag1);
// ...waiting for drop down with results to show up...
- $this->waitForElementPresent("css=div.token-input-dropdown-facebook");
- $this->waitForElementPresent("css=li.token-input-dropdown-item2-facebook");
+ $this->waitForElementPresent("xpath=//div[@class='select2-result-label']");
// ...need to use mouseDownAt on first result (which is a li element), click does not work
- $this->mouseDownAt("css=li.token-input-dropdown-item2-facebook");
+ $this->clickAt("xpath=//div[@class='select2-result-label']");
$this->waitForTextPresent($tag1);
// Add tag2 for Individual 1
$tag2 = substr(sha1(rand()), 0, 5);
- $this->click("css=input#token-input-contact_taglist_{$tagSet2}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet2}", $tag2);
- $this->typeKeys("css=input#token-input-contact_taglist_{$tagSet2}", $tag2);
+ $this->click("xpath=//*[@id='contact_taglist_{$tagSet2}']/../div/ul/li[1]/input");
+ $this->keyDown("xpath=//*[@id='contact_taglist_{$tagSet2}']/../div/ul/li[1]/input", " ");
+ $this->type("xpath=//*[@id='contact_taglist_{$tagSet2}']/../div/ul/li[1]/input", $tag2);
+ $this->typeKeys("xpath=//*[@id='contact_taglist_{$tagSet2}']/../div/ul/li[1]/input", $tag2);
// ...waiting for drop down with results to show up...
- $this->waitForElementPresent("css=div.token-input-dropdown-facebook");
- $this->waitForElementPresent("css=li.token-input-dropdown-item2-facebook");
+ $this->waitForElementPresent("xpath=//div[@class='select2-result-label']");
// ...need to use mouseDownAt on first result (which is a li element), click does not work
- $this->mouseDownAt("css=li.token-input-dropdown-item2-facebook");
+ $this->clickAt("xpath=//div[@class='select2-result-label']");
$this->waitForTextPresent($tag2);
// Individual 2
$this->webtestAddContact($contact2, "Anderson", "{$contact2}@example.com");
$this->click('css=li#tab_tag a');
- $this->waitForElementPresent("token-input-contact_taglist_{$tagSet1}");
+ $this->waitForElementPresent("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input");
// Add tag1 for Individual 2
- $this->click("css=input#token-input-contact_taglist_{$tagSet1}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
- $this->typeKeys("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
+ $this->click("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input");
+ $this->keyDown("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", " ");
+ $this->type("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", $tag1);
+ $this->typeKeys("xpath=//*[@id='contact_taglist_{$tagSet1}']/../div/ul/li[1]/input", $tag1);
// ...waiting for drop down with results to show up...
- $this->waitForElementPresent("css=div.token-input-dropdown-facebook");
- $this->waitForElementPresent("css=li.token-input-dropdown-item2-facebook");
+ $this->waitForElementPresent("xpath=//div[@class='select2-result-label']");
// ...need to use mouseDownAt on first result (which is a li element), click does not work
- $this->mouseDownAt("css=li.token-input-dropdown-item2-facebook");
+ $this->clickAt("xpath=//div[@class='select2-result-label']");
$this->waitForTextPresent($tag1);
// Go to Advance search.
$this->openCiviPage('contact/search/advanced', 'reset=1');
// Check both the tagset.
- $this->assertTrue($this->isElementPresent("token-input-contact_taglist_{$tagSet1}"));
- $this->assertTrue($this->isElementPresent("token-input-contact_taglist_{$tagSet2}"));
+ $this->assertTrue($this->isElementPresent("contact_taglist_{$tagSet1}"));
+ $this->assertTrue($this->isElementPresent("contact_taglist_{$tagSet2}"));
// Search contact using tags.
- $this->click("css=input#token-input-contact_taglist_{$tagSet1}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
- $this->typeKeys("css=input#token-input-contact_taglist_{$tagSet1}", $tag1);
-
- // ...waiting for drop down with results to show up...
- $this->waitForElementPresent("css=div.token-input-dropdown-facebook");
- $this->waitForElementPresent("css=li.token-input-dropdown-item2-facebook");
-
- // ...need to use mouseDownAt on first result (which is a li element), click does not work
- $this->mouseDownAt("css=li.token-input-dropdown-item2-facebook");
+ $this->select2("contact_taglist_{$tagSet1}", $tag1, TRUE);
$this->waitForTextPresent($tag1);
- $this->click("css=input#token-input-contact_taglist_{$tagSet2}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet2}", $tag2);
- $this->click("css=input#token-input-contact_taglist_{$tagSet2}");
- $this->type("css=input#token-input-contact_taglist_{$tagSet2}", $tag2);
- $this->typeKeys("css=input#token-input-contact_taglist_{$tagSet2}", $tag2);
-
- // ...waiting for drop down with results to show up...
- $this->waitForElementPresent("css=div.token-input-dropdown-facebook");
- $this->waitForElementPresent("css=li.token-input-dropdown-item2-facebook");
-
- // ...need to use mouseDownAt on first result (which is a li element), click does not work
- $this->mouseDownAt("css=li.token-input-dropdown-item2-facebook");
+ $this->select2("contact_taglist_{$tagSet2}", $tag2, TRUE);
$this->waitForTextPresent($tag2);
$this->assertElementContainsText('css=.crm-search-results table.selector', "Anderson, $contact2");
}
- function _testAddTagSet() {
+ /**
+ * @return array
+ */
+ public function _testAddTagSet() {
// Go to add tag set url.
$this->openCiviPage('admin/tag', 'action=add&reset=1&tagset=1');
$this->waitForElementPresent("css=table.display tbody tr td");
// verify text
- $this->waitForElementPresent("xpath=//table//tbody/tr/td[1][text()= '$tagSetName']");
+ $this->assertTrue($this->isTextPresent($tagSetName), 'Missing text: ' . $tagSetName);
- $tagid = explode('&id=', $this->getAttribute("xpath=//table//tbody/tr/td[1][text()= '$tagSetName']/following-sibling::td[7]/span/a[text()= 'Edit']@href"));
+ $tagid = explode('&id=', $this->getAttribute("xpath=//table[@class='display dataTable no-footer']/tbody//tr/td[1]/div[text()= '$tagSetName']/../../td[8]/span/a[text()= 'Edit']@href"));
$tagid = explode('&', $tagid[1]);
$tagid = $tagid[0];
return $tagid;
}
}
-