test_guidarray_distinct.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 function runTest () {
32 
33  var databaseGUID = "test_guidarray_distinct";
34  var library = createLibrary(databaseGUID);
35  var listId = library.QueryInterface(Ci.sbILocalDatabaseLibrary).getMediaItemIdForGuid("7e8dcc95-7a1d-4bb3-9b14-d4906a9952cb");
36  var array;
37 
38  array = makeArray(library);
39  array.isDistinct = true;
40  array.baseTable = "media_items";
41  array.addSort("http://songbirdnest.com/data/1.0#artistName", true);
42  array.fetchSize = 1;
43  assertDistinct(array, "data_distinct_artist.txt");
44 
45  array = makeArray(library);
46  array.isDistinct = true;
47  array.baseTable = "media_items";
48  array.addSort("http://songbirdnest.com/data/1.0#contentLength", true);
49  array.fetchSize = 1;
50  assertDistinct(array, "data_distinct_contentlength.txt");
51 
52  array = makeArray(library);
53  array.isDistinct = true;
54  array.baseTable = "simple_media_lists";
55  array.baseConstraintColumn = "media_item_id";
56  array.baseConstraintValue = listId;
57  array.addSort("http://songbirdnest.com/data/1.0#albumName", true);
58  array.fetchSize = 10;
59  assertDistinct(array, "data_distinct_sml101_album.txt");
60 }
61 
62 function assertDistinct(array, dataFile) {
63 
64  var data = readFile(dataFile);
65  var a = data.split("\n");
66 
67  if(a.length - 1 != array.length) {
68  fail("distinct failed, length wrong, got " + array.length + " expected " + (a.length - 1));
69  }
70 
71  for(var i = 0; i < a.length - 1; i++) {
72  var b = a[i].split("\t");
73  if(array.getSortPropertyValueByIndex(i) != b[0]) {
74  fail("distinct failed, index " + i + " got " + array.getSortPropertyValueByIndex(i) + " expected " + b[0]);
75  }
76  }
77 
78 }
79 
function fail(aMessage)
inArray array
trim makeArray
function assertDistinct(array, dataFile)
function runTest()
Test file.
function createLibrary(databaseGuid, databaseLocation)
Definition: test_load.js:151
const Ci
function readFile(fileName)
observe data
Definition: FeedWriter.js:1329
_getSelectedPageStyle s i