VulpesOS/gaia/tests/integration/sms/contacts_interaction_test.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

128 lines
4 KiB
JavaScript
Executable file

/* global require, marionette, setup, suite, test */
'use strict';
var assert = require('chai').assert;
var appRoot = require('app-root-path');
// TODO Change the path once requireFromApp becomes its own module
var fromApp = require(appRoot + '/shared/test/integration/require_from_app');
var Messages = fromApp('sms').require('lib/messages');
var InboxView = fromApp('sms').require('lib/views/inbox/view');
var ThreadGenerator = fromApp('sms').require('generators/thread');
var Storage = fromApp('sms').require('lib/storage.js');
var Contacts = fromApp('contacts').require('lib/contacts');
var ContactsData = fromApp('contacts').require('lib/contacts_data');
marionette('Contacts', function() {
var messagesApp;
var client = marionette.client({
prefs: {
'focusmanager.testmode': true
},
desiredCapabilities: { raisesAccessibilityExceptions: false }
});
var thread, storage, contactsData, inbox;
var testContact = {
givenName: ['FirstName'],
familyName: ['LastName'],
name: ['FirstName LastName'],
tel: [{
value: '5551234567',
type: ['home']
}],
};
setup(function() {
var contactsApp = new Contacts(client);
contactsApp.launch();
contactsData = new ContactsData(client);
contactsData.createMozContact(testContact);
// Change once bug 1140344 lands. Closing the application is needed,
// in order to be sure to switch to the right frame when an activity is
// started.
contactsApp.close();
messagesApp = Messages.create(client);
storage = Storage.create(client);
client.contentScript.inject(
fromApp('sms').filePath('mocks/mock_test_storages.js')
);
client.contentScript.inject(
fromApp('sms').filePath('mocks/mock_navigator_moz_mobile_message.js')
);
messagesApp.launch();
inbox = new InboxView(client);
});
suite('Conversation Header', function() {
var conversation;
setup(function() {
thread = ThreadGenerator.generate();
storage.setMessagesStorage([thread], ThreadGenerator.uniqueMessageId);
conversation = inbox.goToConversation(thread.id);
});
// Deactivated because of bug 1175080. Sometimes Marionette looses the
// connection, which is making some intermittent Gij runs.
test.skip('should create a new contact', function() {
// Bug 1175080. Asserting on the throw makes the error message clearer.
// Otherwise we just have a crash in the stackwalk.
assert.doesNotThrow(function() {
var newContact = conversation.openCreateNewContact();
newContact.enterContactDetails({
givenName: 'Given',
familyName: 'Family',
});
messagesApp.switchTo();
assert.equal(conversation.carrierHeaderPhoneNumber, '+123');
assert.equal(conversation.headerTitle, 'Given Family');
});
});
// Deactivated because of bug 1175080. Sometimes Marionette looses the
// connection, which is making some intermittent Gij runs.
test.skip('should add the phone number to an existing contact', function() {
// Bug 1175080. Asserting on the throw makes the error message clearer.
// Otherwise we just have a crash in the stackwalk.
assert.doesNotThrow(function() {
var contactPicker = conversation.openAddToExistingContact();
contactPicker.tapContact(testContact.name);
contactPicker.tapUpdate();
messagesApp.switchTo();
assert.equal(conversation.carrierHeaderPhoneNumber, '+123');
assert.equal(conversation.headerTitle, testContact.name);
});
});
});
suite('add recipient', function() {
var newMessage;
setup(function() {
storage.setMessagesStorage();
newMessage = inbox.createNewMessage();
});
test('should pick contacts from Contacts', function() {
var contactPicker = newMessage.openContactPicker();
contactPicker.tapContact(testContact.name);
messagesApp.switchTo();
var recipients = newMessage.recipients;
assert.lengthOf(recipients, 1);
assert.deepEqual(recipients, testContact.name);
});
});
});