Skip to content

Commit fa78047

Browse files
committedMay 19, 2023
Add unit test
1 parent 0b16196 commit fa78047

File tree

3 files changed

+150
-0
lines changed

3 files changed

+150
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"tilejson": "2.1.0",
3+
"format" : "quantized-mesh-1.0",
4+
"version" : "1.0.0",
5+
"scheme" : "tms",
6+
"attribution" : "This amazing data is courtesy The Amazing Data Source!",
7+
"tiles" : [
8+
"{z}/{x}/{y}.terrain?v={version}"
9+
],
10+
"extensions": [
11+
"watermask",
12+
"metadata",
13+
"octvertexnormals"
14+
],
15+
"metadataAvailability": 10,
16+
"minzoom": 0,
17+
"maxzoom": 13,
18+
"available" : [
19+
[
20+
{
21+
"startX" : 0,
22+
"startY" : 0,
23+
"endX" : 1,
24+
"endY" : 0
25+
}
26+
],
27+
[
28+
{
29+
"startX" : 0,
30+
"startY" : 0,
31+
"endX" : 3,
32+
"endY" : 1
33+
}
34+
]
35+
]
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"tilejson": "2.1.0",
3+
"format" : "quantized-mesh-1.0",
4+
"version" : "1.0.0",
5+
"scheme" : "tms",
6+
"attribution" : "This is a child tileset!",
7+
"tiles" : [
8+
"{z}/{x}/{y}.terrain?v={version}"
9+
],
10+
"extensions" : [
11+
"watermask",
12+
"metadata",
13+
"octvertexnormals"
14+
],
15+
"metadataAvailability": 10,
16+
"minzoom": 0,
17+
"maxzoom": 13,
18+
"available" : [
19+
[
20+
{
21+
"startX" : 0,
22+
"startY" : 0,
23+
"endX" : 1,
24+
"endY" : 0
25+
}
26+
],
27+
[
28+
{
29+
"startX" : 0,
30+
"startY" : 0,
31+
"endX" : 2,
32+
"endY" : 1
33+
}
34+
]
35+
],
36+
"parentUrl": "./"
37+
}
38+

‎packages/engine/Specs/Core/CesiumTerrainProviderSpec.js

+76
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,45 @@ describe("Core/CesiumTerrainProvider", function () {
133133
);
134134
}
135135

136+
function returnParentUrlTileJsonWithMetadataAvailability() {
137+
const paths = [
138+
"Data/CesiumTerrainTileJson/ParentUrlAvailability.tile.json",
139+
"Data/CesiumTerrainTileJson/ParentAvailability.tile.json",
140+
];
141+
let i = 0;
142+
const oldLoad = Resource._Implementations.loadWithXhr;
143+
Resource._Implementations.loadWithXhr = function (
144+
url,
145+
responseType,
146+
method,
147+
data,
148+
headers,
149+
deferred,
150+
overrideMimeType
151+
) {
152+
if (url.indexOf("layer.json") >= 0) {
153+
Resource._DefaultImplementations.loadWithXhr(
154+
paths[i++],
155+
responseType,
156+
method,
157+
data,
158+
headers,
159+
deferred
160+
);
161+
} else {
162+
return oldLoad(
163+
url,
164+
responseType,
165+
method,
166+
data,
167+
headers,
168+
deferred,
169+
overrideMimeType
170+
);
171+
}
172+
};
173+
}
174+
136175
async function waitForTile(level, x, y, requestNormals, requestWaterMask, f) {
137176
const terrainProvider = await CesiumTerrainProvider.fromUrl("made/up/url", {
138177
requestVertexNormals: requestNormals,
@@ -899,6 +938,43 @@ describe("Core/CesiumTerrainProvider", function () {
899938
expect(terrainProvider.availability.isTileAvailable(1, 0, 0)).toBe(true);
900939
});
901940

941+
it("provides QuantizedMeshTerrainData with multiple layers and with Metadata availability ", async function () {
942+
Resource._Implementations.loadWithXhr = function (
943+
url,
944+
responseType,
945+
method,
946+
data,
947+
headers,
948+
deferred,
949+
overrideMimeType
950+
) {
951+
Resource._DefaultImplementations.loadWithXhr(
952+
"Data/CesiumTerrainTileJson/tile.metadataavailability.terrain",
953+
responseType,
954+
method,
955+
data,
956+
headers,
957+
deferred
958+
);
959+
};
960+
961+
returnParentUrlTileJsonWithMetadataAvailability();
962+
963+
const terrainProvider = await CesiumTerrainProvider.fromUrl(
964+
"made/up/url"
965+
);
966+
967+
expect(terrainProvider.hasMetadata).toBe(true);
968+
const layers = terrainProvider._layers;
969+
expect(layers.length).toBe(2);
970+
971+
expect(terrainProvider.availability.isTileAvailable(1, 0, 0)).toBe(false);
972+
973+
const loadedData = await terrainProvider.requestTileGeometry(0, 0, 1);
974+
expect(loadedData).toBeInstanceOf(QuantizedMeshTerrainData);
975+
expect(terrainProvider.availability.isTileAvailable(1, 0, 0)).toBe(true);
976+
});
977+
902978
it("returns undefined if too many requests are already in progress", async function () {
903979
const baseUrl = "made/up/url";
904980

0 commit comments

Comments
 (0)
Please sign in to comment.