Page MenuHomePhorge

No OneTemporary

Size
10 KB
Referenced Files
None
Subscribers
None
diff --git a/tests/Browser/Contacts/Contacts.php b/tests/Browser/Contacts/Contacts.php
index 6eac02c40..abb4ac082 100644
--- a/tests/Browser/Contacts/Contacts.php
+++ b/tests/Browser/Contacts/Contacts.php
@@ -1,83 +1,81 @@
<?php
namespace Tests\Browser\Contacts;
use Tests\Browser\Components\App;
class Contacts extends \Tests\Browser\TestCase
{
protected function setUp()
{
parent::setUp();
\bootstrap::init_db();
}
/**
* Contacts UI Basics
*/
public function testContactsUI()
{
$this->browse(function ($browser) {
$browser->go('addressbook');
$browser->with(new App(), function ($browser) {
// check task
$browser->assertEnv('task', 'addressbook');
// these objects should be there always
$browser->assertObjects(['qsearchbox', 'folderlist', 'contactslist', 'countdisplay']);
});
if (!$browser->isDesktop()) {
$browser->assertMissing('#directorylist');
$browser->click('a.back-sidebar-button');
}
- $browser->assertSeeIn('#layout-sidebar .header', 'Groups');
-
// Groups/Addressbooks list
$browser->assertVisible('#directorylist');
$browser->assertSeeIn('#directorylist li:first-child', 'Personal Addresses');
$browser->assertMissing('#directorylist .treetoggle.expanded');
// Contacts list
if (!$browser->isDesktop()) {
$browser->assertMissing('#contacts-table');
$browser->click('#directorylist li:first-child');
$browser->waitFor('#contacts-table');
}
else {
$browser->assertVisible('#contacts-table');
}
// Contacts list menu
if ($browser->isPhone()) {
$browser->assertToolbarMenu(['select'], []);
}
else if ($browser->isTablet()) {
$browser->click('.toolbar-list-button')
->waitFor('#toolbar-list-menu')
->assertVisible('#toolbar-list-menu a.select:not(.disabled)')
->click();
}
else {
$browser->assertVisible('#toolbar-list-menu a.select:not(.disabled)');
}
// Toolbar menu
$browser->assertToolbarMenu(
['create', 'search', 'import', 'export'], // active items
['print', 'delete', 'more'], // inactive items
);
// Contact frame
if (!$browser->isPhone()) {
$browser->assertVisible('#contact-frame');
}
// Task menu
$browser->assertTaskMenu('contacts');
});
}
}
diff --git a/tests/Browser/Contacts/Groups.php b/tests/Browser/Contacts/Groups.php
new file mode 100644
index 000000000..9529de1b7
--- /dev/null
+++ b/tests/Browser/Contacts/Groups.php
@@ -0,0 +1,183 @@
+<?php
+
+namespace Tests\Browser\Contacts;
+
+use Tests\Browser\Components\Popupmenu;
+
+class Groups extends \Tests\Browser\TestCase
+{
+ /**
+ * Contact groups UI basics
+ */
+ public function testGroups()
+ {
+ \bootstrap::init_db();
+
+ $this->browse(function ($browser) {
+ $browser->go('addressbook');
+
+ if (!$browser->isDesktop()) {
+ $browser->assertMissing('#directorylist');
+ $browser->click('a.back-sidebar-button');
+ }
+
+ // Groups/Addressbooks list
+ $browser->assertVisible('#directorylist');
+ $browser->assertSeeIn('#directorylist li:first-child', 'Personal Addresses');
+
+ $browser->assertSeeIn('#layout-sidebar .header', 'Groups');
+
+ $browser->click('#layout-sidebar .header .sidebar-menu');
+
+ $browser->with(new Popupmenu('groupoptions-menu'), function ($browser) {
+ // Note: These are button class names, not action names
+ $active = ['create'];
+ $disabled = ['group.rename', 'group.delete', 'search', 'search.delete'];
+
+ $browser->assertMenuState($active, $disabled);
+ $browser->closeMenu();
+ });
+ });
+ }
+
+ /**
+ * Contact group creation
+ */
+ public function testGroupCreate()
+ {
+ $this->browse(function ($browser) {
+ $browser->go('addressbook');
+
+ if (!$browser->isDesktop()) {
+ $browser->click('a.back-sidebar-button');
+ }
+
+ $browser->click('#layout-sidebar .header .sidebar-menu');
+
+ $browser->with(new Popupmenu('groupoptions-menu'), function ($browser) {
+ $browser->clickMenuItem('create');
+ });
+
+ $browser->waitFor('.ui-dialog');
+ $browser->with('.ui-dialog', function ($browser) {
+ $browser
+ ->assertSeeIn('.ui-dialog-titlebar', 'Create new group')
+ ->assertFocused('input.form-control')
+ ->type('input.form-control', 'New Group')
+ ->click('button.mainaction');
+ });
+
+ $browser->waitUntilMissing('.ui-dialog');
+
+ $browser->with('#directorylist', function ($browser) {
+ $browser->waitFor('li:first-child ul.groups');
+ $browser->assertVisible('.treetoggle.expanded');
+
+ $this->assertCount(1, $browser->elements('ul.groups > li.contactgroup'));
+ $browser->assertSeeIn('ul.groups > li.contactgroup', 'New Group');
+
+ // Test expand toggle
+ $browser->click('.treetoggle.expanded')
+ ->assertMissing('ul.groups')
+ ->click('.treetoggle.collapsed')
+ ->assertSeeIn('ul.groups > li.contactgroup', 'New Group');
+ });
+ });
+ }
+
+ /**
+ * Contact group rename
+ *
+ * @depends testGroupCreate
+ */
+ public function testGroupRename()
+ {
+ $this->browse(function ($browser) {
+ $browser->go('addressbook');
+
+ if (!$browser->isDesktop()) {
+ $browser->click('a.back-sidebar-button');
+ }
+
+ $browser->click('#directorylist ul.groups > li:first-child');
+
+ if (!$browser->isDesktop()) {
+ $browser->click('a.back-sidebar-button');
+ }
+
+ $browser->click('#layout-sidebar .header .sidebar-menu');
+
+ $browser->with(new Popupmenu('groupoptions-menu'), function ($browser) {
+ $browser->clickMenuItem('group.rename');
+ });
+
+ $browser->waitFor('.ui-dialog');
+ $browser->with('.ui-dialog', function ($browser) {
+ $browser->assertSeeIn('.ui-dialog-titlebar', 'Rename group')
+ ->assertFocused('input.form-control')
+ ->assertValue('input.form-control', 'New Group')
+ ->type('input.form-control', 'Renamed')
+ ->click('button.mainaction');
+ });
+
+ $browser->waitUntilMissing('.ui-dialog');
+
+ $browser->with('#directorylist', function ($browser) {
+ $browser->waitFor('li:first-child ul.groups');
+ $browser->assertVisible('.treetoggle.expanded');
+
+ $this->assertCount(1, $browser->elements('ul.groups > li.contactgroup'));
+ $browser->assertSeeIn('ul.groups > li.contactgroup', 'Renamed');
+
+ // Test if expand toggle is still working
+ $browser->click('.treetoggle.expanded')
+ ->assertMissing('ul.groups')
+ ->click('.treetoggle.collapsed')
+ ->assertSeeIn('ul.groups > li.contactgroup', 'Renamed');
+ });
+ });
+ }
+
+ /**
+ * Contact group deletion
+ *
+ * @depends testGroupRename
+ */
+ public function testGroupDelete()
+ {
+ $this->browse(function ($browser) {
+ $browser->go('addressbook');
+
+ if (!$browser->isDesktop()) {
+ $browser->click('a.back-sidebar-button');
+ }
+
+ $browser->click('#directorylist ul.groups > li:first-child');
+
+ if (!$browser->isDesktop()) {
+ $browser->click('a.back-sidebar-button');
+ }
+
+ $browser->click('#layout-sidebar .header .sidebar-menu');
+
+ $browser->with(new Popupmenu('groupoptions-menu'), function ($browser) {
+ $browser->clickMenuItem('group.delete');
+ });
+
+ $browser->waitFor('.ui-dialog');
+ $browser->with('.ui-dialog', function ($browser) {
+ $browser->assertSeeIn('.ui-dialog-titlebar', 'Are you sure...')
+ ->assertSeeIn('.ui-dialog-content', 'Do you really want to delete selected group?')
+ ->assertFocused('button.mainaction.delete')
+ ->click('button.mainaction.delete');
+ });
+
+ $browser->waitUntilMissing('.ui-dialog');
+
+ $browser->with('#directorylist', function ($browser) {
+ $browser->assertMissing('.treetoggle.expanded')
+ ->assertMissing('ul.groups');
+ });
+ });
+ }
+}
diff --git a/tests/Browser/phpunit.xml b/tests/Browser/phpunit.xml
index b3ec82607..a131be0b9 100644
--- a/tests/Browser/phpunit.xml
+++ b/tests/Browser/phpunit.xml
@@ -1,31 +1,32 @@
<phpunit backupGlobals="false"
bootstrap="bootstrap.php"
colors="true">
<testsuites>
<testsuite name="Logon">
<file>Logon/Login.php</file>
<file>Logon/Logout.php</file>
</testsuite>
<testsuite name="Contacts">
<file>Contacts/Contacts.php</file>
+ <file>Contacts/Groups.php</file>
<file>Contacts/Import.php</file>
<file>Contacts/Export.php</file>
</testsuite>
<testsuite name="Settings">
<file>Settings/Settings.php</file>
<file>Settings/Preferences.php</file>
<file>Settings/Preferences/General.php</file>
<file>Settings/Folders.php</file>
<file>Settings/Identities.php</file>
<file>Settings/Responses.php</file>
<file>Settings/About.php</file>
</testsuite>
<testsuite name="Mail">
<file>Mail/Mail.php</file>
<file>Mail/Compose.php</file>
<file>Mail/Getunread.php</file>
<file>Mail/List.php</file>
<file>Mail/Open.php</file>
</testsuite>
</testsuites>
</phpunit>

File Metadata

Mime Type
text/x-diff
Expires
Fri, Feb 6, 5:01 AM (8 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
428105
Default Alt Text
(10 KB)

Event Timeline