aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorCaitlin Potter2014-02-05 23:50:58 -0500
committerTobias Bosch2014-03-21 13:05:29 -0700
commit10d3e1e4472ab9f5cf4418b6438ec2e0f2b0b288 (patch)
tree556cb6d3bcf8fab33063532b9aa16768e181f103 /test
parent93d1c95c61dbfa565333bb64527a103242175af7 (diff)
downloadangular.js-10d3e1e4472ab9f5cf4418b6438ec2e0f2b0b288.tar.bz2
fix(orderBy): support string predicates containing non-ident characters
The orderBy filter now allows string predicates passed to the orderBy filter to make use property name predicates containing non-ident strings, such as spaces or percent signs, or non-latin characters. This behaviour requires the predicate string to be double-quoted. In markup, this might look like so: ```html <div ng-repeat="item in items | orderBy:'\"Tip %\"'"> ... </div> ``` Or in JS: ```js var sorted = $filter('orderBy')(array, ['"Tip %"', '-"Subtotal $"'], false); ``` Closes #6143 Closes #6144
Diffstat (limited to 'test')
-rw-r--r--test/ng/filter/orderBySpec.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/ng/filter/orderBySpec.js b/test/ng/filter/orderBySpec.js
index 5c117891..5dc96677 100644
--- a/test/ng/filter/orderBySpec.js
+++ b/test/ng/filter/orderBySpec.js
@@ -31,4 +31,16 @@ describe('Filter: orderBy', function() {
toEqual([{a:2, b:1},{a:15, b:1}]);
});
+ it('should support string predicates with names containing non-identifier characters', function() {
+ expect(orderBy([{"Tip %": .25}, {"Tip %": .15}, {"Tip %": .40}], '"Tip %"'))
+ .toEqualData([{"Tip %": .15}, {"Tip %": .25}, {"Tip %": .40}]);
+ expect(orderBy([{"원": 76000}, {"원": 31000}, {"원": 156000}], '"원"'))
+ .toEqualData([{"원": 31000}, {"원": 76000}, {"원": 156000}])
+ });
+
+ it('should throw if quoted string predicate is quoted incorrectly', function() {
+ expect(function() {
+ return orderBy([{"Tip %": .15}, {"Tip %": .25}, {"Tip %": .40}], '"Tip %\'');
+ }).toThrow();
+ });
});