test_propertycache.js
Go to the documentation of this file.
1 /*
2 //
3 // BEGIN SONGBIRD GPL
4 //
5 // This file is part of the Songbird web player.
6 //
7 // Copyright(c) 2005-2008 POTI, Inc.
8 // http://songbirdnest.com
9 //
10 // This file may be licensed under the terms of of the
11 // GNU General Public License Version 2 (the "GPL").
12 //
13 // Software distributed under the License is distributed
14 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
15 // express or implied. See the GPL for the specific language
16 // governing rights and limitations.
17 //
18 // You should have received a copy of the GPL along with this
19 // program. If not, go to http://www.gnu.org/licenses/gpl.html
20 // or write to the Free Software Foundation, Inc.,
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 //
23 // END SONGBIRD GPL
24 //
25 */
26 
31 // note that this test will fail if resource_properties.txt ends with a final \n
32 
33 function runTest () {
34 
35  var databaseGUID = "test_propertycache";
36  var library = createLibrary(databaseGUID);
37 
38  var cache = library.QueryInterface(Ci.sbILocalDatabaseLibrary).propertyCache;
39 
40  var db = loadMockDatabase();
41 
42  // Request guids in 20 guid chunks
43  var guidList = [];
44  for(var guid in db) {
45  guidList.push(guid);
46  if(guidList.length > 20) {
47  var bagCount = {};
48  var bags = cache.getProperties(guidList, guidList.length, bagCount);
49  assertEqual(bagCount.value, guidList.length);
50 
51  for(var i = 0; i < bagCount.value; i++) {
52  var e = bags[i].ids;
53  while(e.hasMore()) {
54  var p = e.getNext();
55  var guid = guidList[i];
56  assertEqual(db[guid][p], bags[i].getProperty(p), p + " " + guid);
57  }
58  }
59  guidList = [];
60  }
61  }
62 
63  // Request the whole db one guid at a time
64  for(var guid in db) {
65  var item = db[guid];
66 
67  var bagCount = {};
68  var bags = cache.getProperties([guid], 1, bagCount);
69  assertEqual(bagCount.value, 1);
70 
71  var e = bags[0].ids;
72  while(e.hasMore()) {
73  var p = e.getNext();
74  assertEqual(item[p], bags[0].getProperty(p), p + " " + guid);
75  }
76  }
77 
78 }
function assertEqual(aExpected, aActual, aMessage)
function createLibrary(databaseGuid, databaseLocation)
Definition: test_load.js:151
function runTest()
Test file.
const Ci
_getSelectedPageStyle s i