Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F10702193
GroupsTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
GroupsTest.php
View Options
<?php
namespace
Tests\Browser\Contacts
;
use
Tests\Browser\Components\Dialog
;
use
Tests\Browser\Components\Popupmenu
;
class
GroupsTest
extends
\Tests\Browser\TestCase
{
public
static
function
setUpBeforeClass
()
{
\bootstrap
::
init_db
();
}
/**
* Contact groups UI basics
*/
public
function
testGroups
()
{
$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
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Create new group'
)
->
assertButton
(
'save.mainaction'
,
'Save'
)
->
assertButton
(
'cancel'
,
'Cancel'
)
->
assertFocused
(
'@content input.form-control'
)
->
type
(
'@content input.form-control'
,
'New Group'
)
->
clickButton
(
'save'
);
});
$browser
->
with
(
'#directorylist'
,
function
(
$browser
)
{
$browser
->
waitFor
(
'li:first-child ul.groups'
)
->
assertVisible
(
'.treetoggle.expanded'
)
->
assertElementsCount
(
'ul.groups > li.contactgroup'
,
1
)
->
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
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Rename group'
)
->
assertButton
(
'save.mainaction'
,
'Save'
)
->
assertButton
(
'cancel'
,
'Cancel'
)
->
assertFocused
(
'@content input.form-control'
)
->
assertValue
(
'@content input.form-control'
,
'New Group'
)
->
type
(
'@content input.form-control'
,
'Renamed'
)
->
clickButton
(
'save'
);
});
$browser
->
with
(
'#directorylist'
,
function
(
$browser
)
{
$browser
->
waitFor
(
'li:first-child ul.groups'
)
->
assertVisible
(
'.treetoggle.expanded'
)
->
assertElementsCount
(
'ul.groups > li.contactgroup'
,
1
)
->
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
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Are you sure...'
)
->
assertDialogContent
(
'Do you really want to delete selected group?'
)
->
assertButton
(
'delete.mainaction'
,
'Delete'
)
->
assertButton
(
'cancel'
,
'Cancel'
)
->
clickButton
(
'delete'
);
});
$browser
->
with
(
'#directorylist'
,
function
(
$browser
)
{
$browser
->
assertMissing
(
'.treetoggle.expanded'
)
->
assertMissing
(
'ul.groups'
);
});
});
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Mon, Sep 7, 12:56 AM (1 d, 12 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1280881
Default Alt Text
GroupsTest.php (6 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment