| [9af201e] | 1 | var assert = require('assert');
|
|---|
| 2 | var jp = require('../');
|
|---|
| 3 |
|
|---|
| 4 | var data = require('./data/store.json');
|
|---|
| 5 |
|
|---|
| 6 | suite('orig-google-code-issues', function() {
|
|---|
| 7 |
|
|---|
| 8 | test('comma in eval', function() {
|
|---|
| 9 | var pathExpression = '$..book[?(@.price && ",")]'
|
|---|
| 10 | var results = jp.query(data, pathExpression);
|
|---|
| 11 | assert.deepEqual(results, data.store.book);
|
|---|
| 12 | });
|
|---|
| 13 |
|
|---|
| 14 | test('member names with dots', function() {
|
|---|
| 15 | var data = { 'www.google.com': 42, 'www.wikipedia.org': 190 };
|
|---|
| 16 | var results = jp.query(data, "$['www.google.com']");
|
|---|
| 17 | assert.deepEqual(results, [ 42 ]);
|
|---|
| 18 | });
|
|---|
| 19 |
|
|---|
| 20 | test('nested objects with filter', function() {
|
|---|
| 21 | var data = { dataResult: { object: { objectInfo: { className: "folder", typeName: "Standard Folder", id: "uniqueId" } } } };
|
|---|
| 22 | var results = jp.query(data, "$..object[?(@.className=='folder')]");
|
|---|
| 23 | assert.deepEqual(results, [ data.dataResult.object.objectInfo ]);
|
|---|
| 24 | });
|
|---|
| 25 |
|
|---|
| 26 | test('script expressions with @ char', function() {
|
|---|
| 27 | var data = { "DIV": [{ "@class": "value", "val": 5 }] };
|
|---|
| 28 | var results = jp.query(data, "$..DIV[?(@['@class']=='value')]");
|
|---|
| 29 | assert.deepEqual(results, data.DIV);
|
|---|
| 30 | });
|
|---|
| 31 |
|
|---|
| 32 | test('negative slices', function() {
|
|---|
| 33 | var results = jp.query(data, "$..book[-1:].title");
|
|---|
| 34 | assert.deepEqual(results, ['The Lord of the Rings']);
|
|---|
| 35 | });
|
|---|
| 36 |
|
|---|
| 37 | });
|
|---|
| 38 |
|
|---|