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.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,410 @@
'use strict';
/* global fb */
/* global MockAllFacebookContacts */
/* global MockContactAllFields */
/* global MockLinkedContacts */
/* global MockImportStatusData */
/* global utils */
var FB_ID = 220439;
var Mockfb = {
fbContact: false,
fbLinked: false,
isEnabled: true,
CATEGORY: 'facebook',
NOT_LINKED: 'not_linked',
LINKED: 'fb_linked',
// Default, can be changed by specific tests
operationsTimeout: 20000,
// mocks the saved data
savedData: [],
utils: {
getImportChecked: function() {}
}
};
Mockfb.init = function(callback) {
callback();
};
Mockfb.setEmptyContacts = function() {
this.contacts = [];
};
Mockfb.setIsFbContact = function(isFB) {
this.fbContact = isFB;
};
Mockfb.setIsFbLinked = function(isLinked) {
this.fbLinked = isLinked;
};
// This function redirects to the implementation
// inside the Mockfb.Contact. Purpose is to allow
// reuse of this mock by the contacts_test.js
// and to allow the existing tests to work.
Mockfb.getData = function(con) {
var fbContact = new Mockfb.Contact(con);
return fbContact.getData();
};
Mockfb.getContactByNumber = function(number, onsuccess, onerror) {
if(this.contacts.length === 0) {
return onsuccess(null);
} else {
return onsuccess(this.contacts);
}
};
Mockfb.setIsEnabled = function(isEnabled) {
this.isEnabled = isEnabled;
};
Mockfb.contacts = function() {
var getAll = function getAll() {
return {
set onsuccess(callback) {
// Fetch FB data, that is returning a contact info
this.result = {};
this.result[FB_ID] = new MockContactAllFields();
this.result[FB_ID].id = '567';
this.result[FB_ID].familyName = ['Taylor'];
this.result[FB_ID].givenName = ['Bret'];
this.result[FB_ID].name = [this.result[FB_ID].givenName + ' ' +
this.result[FB_ID].familyName];
this.result[FB_ID].org[0] = 'FB';
this.result[FB_ID].adr = Mockfb.getAddresses();
callback.call(this);
},
set onerror(callback) {
}
};
};
return {
'getAll': getAll
};
}();
Mockfb.Contact = function(devContact, mozCid) {
var deviceContact = devContact;
var contactData;
if (devContact) {
setFacebookUid(FB_ID);
}
function markAsFb(deviceContact) {
if (!deviceContact.category) {
deviceContact.category = [];
}
if (deviceContact.category.indexOf(Mockfb.CATEGORY) === -1) {
deviceContact.category.push(Mockfb.CATEGORY);
deviceContact.category.push(Mockfb.NOT_LINKED);
}
return deviceContact;
}
function doGetFacebookUid(data) {
var out = data.uid;
if (!out) {
if (Mockfb.isFbLinked(data)) {
out = getLinkedTo(data);
} else if (data.category) {
var idx = data.category.indexOf(fb.CATEGORY);
if (idx !== -1) {
out = data.category[idx + 2];
}
}
}
return out;
}
function getLinkedTo(c) {
var out;
if (c.category) {
var idx = c.category.indexOf(fb.LINKED);
if (idx !== -1) {
out = c.category[idx + 1];
}
}
return out;
}
function doSetFacebookUid(deviceContact, value) {
if (!deviceContact.category) {
deviceContact.category = [];
}
if (deviceContact.category.indexOf(fb.CATEGORY) === -1) {
markAsFb(deviceContact);
}
var idx = deviceContact.category.indexOf(fb.CATEGORY);
deviceContact.category[idx + 2] = value;
}
function getFacebookUid() {
return doGetFacebookUid(deviceContact);
}
function setFacebookUid(value) {
doSetFacebookUid(deviceContact, value);
}
this.getData = function getData() {
return {
set onsuccess(callback) {
// Fetch FB data, that is returning a contact info
this.result = new MockContactAllFields();
deviceContact = this.result;
setFacebookUid(FB_ID);
this.result.id = '567';
this.result.familyName = ['Taylor'];
this.result.givenName = ['Bret'];
this.result.name = [this.result.givenName + ' ' +
this.result.familyName];
this.result.org[0] = 'FB';
this.result.adr = Mockfb.getAddresses();
callback.call(this);
},
set onerror(callback) {
}
};
};
this.setData = function(data) {
contactData = data;
};
this.save = function() {
return {
set onsuccess(callback) {
Mockfb.savedData.push(contactData);
callback.call(this);
},
set onerror(callback) {
}
};
};
this.merge = function(deviceContact) {
deviceContact.id = '567';
deviceContact.familyName = ['Taylor'];
deviceContact.givenName = ['Bret'];
deviceContact.name = [deviceContact.givenName + ' ' +
deviceContact.familyName];
deviceContact.org[0] = 'FB';
deviceContact.adr = Mockfb.getAddresses();
return deviceContact;
};
this.getDataAndValues = function getDataAndValues() {
return {
set onsuccess(callback) {
// Fetch FB data, that is returning a contact info
this.result = [];
this.result[0] = new MockContactAllFields();
this.result[0].adr = Mockfb.getAddresses();
var date = new Date(0).toString();
this.result[1] = {
'+346578888888': true,
'test@test.com': true,
'Palencia': true,
'Castilla y León': true,
'España': true,
'Test ORG': true
};
this.result[1][date] = true;
callback.call(this);
},
set onerror(callback) {
}
};
};
this.promoteToLinked = function promoteToLinked() {
Mockfb.promoteToLinked();
};
Object.defineProperty(this, 'uid', {
get: getFacebookUid,
set: setFacebookUid,
enumerable: true,
configurable: false
});
};
Mockfb.isFbContact = function(contact) {
return this.fbContact;
};
Mockfb.promoteToLinked = function() {
this.fbLinked = true;
};
Mockfb.setPropagatedFlag = function(field, contact) {
// Do nothing...
};
Mockfb.removePropagatedFlag = function(field, contact) {
// Do nothing...
};
Mockfb.isFbLinked = function(contact) {
return this.fbLinked;
};
Mockfb.getWorksAt = function(fbData) {
return 'Telefónica';
};
Mockfb.getAddresses = function(fbData) {
var out = [];
out.push({
'type': ['home'],
'locality': 'Palencia',
'region': 'Castilla y León',
'countryName': 'España'
});
out.push({
'type': ['current'],
'locality': 'Greater London',
'region': 'London',
'countryName': 'United Kingdom'
});
return out;
};
Mockfb.utils = (function() {
var value;
return {
getContactData: function() {
return {
set onsuccess(cb) {
cb();
},
get result() {
return value;
}
};
},
set result(r) {
value = r;
},
runQuery: function(query, cbs) {
var ALL_QUERY = ['SELECT uid, name, last_name, first_name,',
' middle_name, email from user ',
' WHERE uid IN (SELECT uid1 FROM friend WHERE uid2=me()) ',
' ORDER BY name'
];
if (query === ALL_QUERY.join('')) {
cbs.success(MockAllFacebookContacts);
}
else {
cbs.success(MockLinkedContacts);
}
},
getImportChecked: function(cb) {
MockImportStatusData.get('tokenData').then(function(data){
if (data && data.access_token) {
cb('logged-in');
} else {
cb('logged-out');
}
});
},
TOKEN_DATA_KEY: 'tokenData',
SCHEDULE_SYNC_KEY: 'facebookShouldHaveScheduledAt',
setLastUpdate: function(date, callback) {
typeof callback === 'function' && callback();
},
setCachedNumFriends: function() {
},
_fbData: [],
getNumFbContacts: function() {
return {
result: 25,
set onsuccess(cb) {
cb();
}
};
},
numFbFriendsData: function(cbl) {
var localCb = cbl.local;
var remoteCb = cbl.remote;
if (typeof localCb == 'function'){
localCb(50);
}
if (typeof remoteCb == 'function'){
remoteCb(50);
}
},
getAllFbContacts: function() {
return {
result: Mockfb.utils._fbData,
set onsuccess(cb) {
cb();
}
};
}
};
}());
Mockfb.contacts = {
_importedContacts: 40,
getLength: function() {
return {
result: this._importedContacts,
set onsuccess(cb) {
cb();
}
};
}
};
Mockfb.sync = {
scheduleNextSync: function() {}
};
Mockfb.markFbCleaningInProgress = function(value) {
utils.cookie.update({
fbCleaningInProgress: value
});
};