yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import { objectToQuery } from "../../Source/Cesium.js";
import { queryToObject } from "../../Source/Cesium.js";
 
describe("Core/objectToQuery", function () {
  it("can encode data", function () {
    var obj = {
      key1: "some value",
      key2: "a/b",
    };
 
    var str = objectToQuery(obj);
    expect(str).toEqual("key1=some%20value&key2=a%2Fb");
  });
 
  it("can encode arrays of data", function () {
    var obj = {
      key: ["a", "b"],
    };
 
    var str = objectToQuery(obj);
    expect(str).toEqual("key=a&key=b");
  });
 
  it("runs example code from the documentation", function () {
    var str = objectToQuery({
      key1: "some value",
      key2: "a/b",
      key3: ["x", "y"],
    });
    expect(str).toEqual("key1=some%20value&key2=a%2Fb&key3=x&key3=y");
  });
 
  it("can round-trip", function () {
    var obj = {
      foo: ["bar", "bar2"],
      bit: "byte",
    };
 
    var obj2 = queryToObject(objectToQuery(obj));
 
    expect(obj2).toEqual(obj);
  });
 
  it("can encode blank", function () {
    expect(objectToQuery({})).toEqual("");
  });
 
  it("requires obj", function () {
    expect(function () {
      objectToQuery();
    }).toThrowDeveloperError();
  });
});