test_filterable.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  Components.utils.import("resource://app/jsmodules/sbProperties.jsm");
34  Components.utils.import("resource://app/jsmodules/sbLibraryUtils.jsm");
35 
36  var library = createLibrary("test_filterable");
37 
38  // Tests with view media list
39  var list = library;
40  var view = list.createView();
41 
42  var filter = LibraryUtils.createConstraint([
43  [
44  [SBProperties.artistName, ["AC/DC"]]
45  ]
46  ]);
47  view.filterConstraint = filter;
48  assertTrue(filter.equals(view.filterConstraint));
49  assertEqual(view.length, 10);
50 
51  filter = LibraryUtils.createConstraint([
52  [
53  [SBProperties.artistName, ["AC/DC", "Accept"]]
54  ]
55  ]);
56  view.filterConstraint = filter;
57  assertEqual(view.length, 25);
58 
59  filter = LibraryUtils.createConstraint([
60  [
61  [SBProperties.artistName, ["AC/DC", "Accept", "a-ha"]]
62  ]
63  ]);
64  view.filterConstraint = filter;
65  assertEqual(view.length, 35);
66 
67  filter = LibraryUtils.createConstraint([
68  [
69  [SBProperties.artistName, ["AC/DC", "Accept", "a-ha"]]
70  ],
71  [
72  [SBProperties.albumName, ["Back in Black"]]
73  ]
74  ]);
75  view.filterConstraint = filter;
76  assertEqual(view.length, 10);
77 
78  filter = LibraryUtils.createConstraint([
79  [
80  [SBProperties.artistName, ["AC/DC", "Accept", "a-ha"]]
81  ],
82  [
83  [SBProperties.albumName, ["Back in Black", "Restless and Wild/Balls to the Wall"]]
84  ]
85  ]);
86  view.filterConstraint = filter;
87  assertEqual(view.length, 25);
88 
89  view.filterConstraint = null;
90  assertEqual(view.length, list.length);
91 
92  filter = LibraryUtils.createConstraint([
93  [
94  [SBProperties.GUID, ["3E3A8948-AD99-11DB-9321-C22AB7121F49"]]
95  ]
96  ]);
97  view.filterConstraint = filter;
98  assertEqual(view.length, 1);
99  assertEqual(view.getItemByIndex(0).guid, "3E3A8948-AD99-11DB-9321-C22AB7121F49");
100 
101  // Test with simple media list
102  list = library.getMediaItem("7e8dcc95-7a1d-4bb3-9b14-d4906a9952cb");
103  view = list.createView();
104 
105  filter = LibraryUtils.createConstraint([
106  [
107  [SBProperties.GUID, ["3E3A8948-AD99-11DB-9321-C22AB7121F49"]]
108  ]
109  ]);
110  view.filterConstraint = filter;
111  assertEqual(view.length, 1);
112  assertEqual(view.getItemByIndex(0).guid, "3E3A8948-AD99-11DB-9321-C22AB7121F49");
113 
114  filter = LibraryUtils.createConstraint([
115  [
116  [SBProperties.artistName, ["AC/DC"]]
117  ]
118  ]);
119  view.filterConstraint = filter;
120  assertEqual(view.length, 10);
121 }
122 
function assertTrue(aTest, aMessage)
function assertEqual(aExpected, aActual, aMessage)
function runTest()
Test file.
return null
Definition: FeedWriter.js:1143
function createLibrary(databaseGuid, databaseLocation)
Definition: test_load.js:151
Javascript wrappers for common library tasks.
Array filter(tab.attributes, function(aAttr){return(_this.xulAttributes.indexOf(aAttr.name) >-1);}).forEach(tab.removeAttribute