Page MenuHomePhorge

ImportTest.php
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

ImportTest.php

<?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

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)

Event Timeline