forked from telefonicaid/gaia
/
details_test.js
154 lines (121 loc) · 4.69 KB
/
details_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
'use strict';
var Contacts = require('./lib/contacts');
var assert = require('assert');
var fs = require('fs');
marionette('Contacts > Details', function() {
var client = marionette.client(Contacts.config);
var subject;
var selectors;
setup(function() {
subject = new Contacts(client);
subject.launch();
selectors = Contacts.Selectors;
});
test.skip('Display the phone number', function() {
var tel = 1231231234;
subject.addContact({
givenName: 'Hello',
tel: tel
});
client.helper.waitForElement(selectors.listContactFirstText)
.click();
subject.waitSlideLeft('details');
var telNode = client.helper.waitForElement(selectors.detailsTelButtonFirst);
assert.equal(telNode.text(), tel);
});
// Disabled: Bug 982260
test.skip('Merging 15 contacts', function() {
var tel = 666666666,
name = 'María Covadonga',
duplicateFrame,
mergeClose,
mergeAction;
for (var i = 1; i <= name.length; i++) {
subject.addContact({
givenName: name.substring(0, i),
tel: tel
});
if (i > 1) {
duplicateFrame = duplicateFrame ||
client.findElement(selectors.duplicateFrame);
subject.waitForSlideUp(duplicateFrame);
client.switchToFrame(duplicateFrame);
mergeClose = client.helper.waitForElement(selectors.duplicateClose);
subject.clickOn(mergeClose);
client.switchToFrame();
client.apps.switchToApp(Contacts.URL, 'contacts');
subject.waitForSlideDown(duplicateFrame);
}
}
var clickedContactName;
var firstContactText = client.helper.waitForElement(
selectors.listContactFirstText);
clickedContactName = firstContactText.text();
subject.clickOn(firstContactText);
subject.waitSlideLeft('details');
subject.clickOn(client.helper.waitForElement(
selectors.detailsFindDuplicate));
subject.waitForSlideUp(duplicateFrame);
client.switchToFrame(duplicateFrame);
mergeAction = client.helper.waitForElement(selectors.duplicateMerge);
subject.clickOn(mergeAction);
client.switchToFrame();
client.apps.switchToApp(Contacts.URL, 'contacts');
subject.waitForSlideDown(duplicateFrame);
var detailsEditContact = client.helper.waitForElement(
selectors.detailsEditContact);
subject.clickOn(detailsEditContact);
subject.waitForFormShown();
var formHeader = client.helper.waitForElement(selectors.formTitle);
var expectedResult = subject.l10n('/locales-obj/en-US.json',
'editContact');
var formContactName = client.helper.waitForElement(
selectors.formGivenName);
assert.equal(formHeader.text(), expectedResult);
assert.equal(formContactName.getAttribute('value'), clickedContactName);
});
// Skiping since we need to review the middleware used in this tests.
// This test is related to bug 983777, leaving it until we solve those
// test problems.
test.skip('Favorite FB contact and edit it', function() {
client.importScript(fs.readFileSync(__dirname +
'/data/facebook_contact_data.js',
'utf8'));
var saveFBContact = function() {
var fb = window.wrappedJSObject.fb,
data = window.wrappedJSObject.data;
var fbContact = new fb.Contact();
fbContact.setData(data.fbContactData);
var savingFBContact = fbContact.save();
savingFBContact.onsuccess = function() {
marionetteScriptFinished(data.fbContactData);
};
savingFBContact.onerror = function() {
marionetteScriptFinished();
};
};
var fbContactData;
client.executeAsyncScript(saveFBContact, function(err, val) {
fbContactData = val;
});
client.waitFor(function() {
return fbContactData;
});
client.helper.waitForElement(selectors.listContactFirstText)
.click();
subject.waitSlideLeft('details');
// Check we loaded the FB contact
var telNode = client.helper.waitForElement(selectors.detailsTelButtonFirst);
assert.equal(telNode.text(), '+34666666666');
// It's not a favorite
var nameNode = client.helper.waitForElement(selectors.detailsContactName);
assert.equal(nameNode.getAttribute('class').indexOf('favorite'), -1);
// Click on favorite
client.helper.waitForElement(selectors.detailsFavoriteButton).click();
nameNode = client.helper.waitForElement(selectors.detailsContactName);
assert.notEqual(nameNode.getAttribute('class').indexOf('favorite'), -1);
// Click on edit and go to the edit form
client.helper.waitForElement(selectors.detailsEditContact).click();
subject.waitForFormShown();
});
});