Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F11542174
ImportTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
ImportTest.php
View Options
<?php
namespace
Tests\Browser\Contacts
;
use
Tests\Browser\Components\App
;
use
Tests\Browser\Components\Dialog
;
class
ImportTest
extends
\Tests\Browser\TestCase
{
public
static
function
setUpBeforeClass
()
{
\bootstrap
::
init_db
();
}
/**
* Test basic elements of contacts import UI
*/
public
function
testImportUI
()
{
$this
->
browse
(
function
(
$browser
)
{
$browser
->
go
(
'addressbook'
);
$browser
->
clickToolbarMenuItem
(
'import'
);
$browser
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Import contacts'
)
->
assertButton
(
'mainaction.import'
,
'Import'
)
->
assertButton
(
'cancel'
,
'Cancel'
);
});
$browser
->
withinFrame
(
'.ui-dialog iframe'
,
function
(
$browser
)
{
// check task and action
$browser
->
with
(
new
App
(),
function
(
$browser
)
{
$browser
->
assertEnv
(
'task'
,
'addressbook'
);
$browser
->
assertEnv
(
'action'
,
'import'
);
// these objects should be there always
$browser
->
assertObjects
([
'importform'
]);
});
$browser
->
assertSee
(
'You can upload'
);
$browser
->
assertVisible
(
'#rcmImportForm'
);
$browser
->
assertVisible
(
'#rcmImportForm select'
);
$browser
->
assertVisible
(
'#rcmImportForm .custom-switch'
);
// FIXME: selecting the file input directly does not work
$browser
->
assertVisible
(
'#rcmImportForm .custom-file'
);
$browser
->
assertSelected
(
'#rcmImportForm select'
,
0
);
});
// Close the dialog
$browser
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
clickButton
(
'cancel'
);
});
});
}
/**
* Import contacts from a vCard file
*
* @depends testImportUI
*/
public
function
testImportProcess
()
{
$this
->
browse
(
function
(
$browser
)
{
// Open the dialog again
$browser
->
clickToolbarMenuItem
(
'import'
);
$browser
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Import contacts'
)
->
clickButton
(
'import'
);
});
// Submit the form with no file attached
$browser
->
with
(
new
Dialog
(
2
),
function
(
$browser
)
{
$browser
->
assertDialogTitle
(
'Attention'
)
->
assertDialogContent
(
'Please select a file'
)
->
assertButton
(
'save.mainaction'
,
'OK'
)
->
pressESC
();
});
$browser
->
with
(
new
Dialog
(),
function
(
$browser
)
{
$browser
->
withinDialogFrame
(
function
(
$browser
)
{
$browser
->
attach
(
'.custom-file input'
,
TESTS_DIR
.
'data/contacts.vcf'
);
})
->
clickButton
(
'import'
)
->
withinDialogFrame
(
function
(
$browser
)
{
$browser
->
waitForText
(
'Successfully imported 2 contacts:'
);
})
->
closeDialog
();
});
// Expected existing contacts + imported
$browser
->
waitFor
(
'#contacts-table tr'
)
->
assertElementsCount
(
'#contacts-table tbody tr'
,
4
)
->
assertSeeIn
(
'#rcmcountdisplay'
,
'1 – 4 of 4'
);
});
}
/**
* Test imported contact
*
* @depends testImportProcess
*/
public
function
testImportResult
()
{
$this
->
browse
(
function
(
$browser
)
{
// Open the dialog again
$browser
->
click
(
'#contacts-table tr:last-child'
);
$browser
->
withinFrame
(
'#contact-frame'
,
function
(
$browser
)
{
$browser
->
waitFor
(
'a.email'
);
// wait for iframe to load
$browser
->
assertSeeIn
(
'.names'
,
'Sylvester Stalone'
);
$browser
->
assertSeeIn
(
'a.email'
,
's.stalone@rambo.tv'
);
});
});
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Mon, Sep 28, 9:13 PM (6 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1383690
Default Alt Text
ImportTest.php (3 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment