import {
|
B3dmParser,
|
Cartesian3,
|
HeadingPitchRange,
|
} from "../../Source/Cesium.js";
|
import Cesium3DTilesTester from "../Cesium3DTilesTester.js";
|
import createScene from "../createScene.js";
|
|
describe(
|
"Scene/B3dmParser",
|
function () {
|
var scene;
|
var centerLongitude = -1.31968;
|
var centerLatitude = 0.698874;
|
|
var deprecated1Url =
|
"./Data/Cesium3DTiles/Batched/BatchedDeprecated1/tileset.json";
|
var deprecated2Url =
|
"./Data/Cesium3DTiles/Batched/BatchedDeprecated2/tileset.json";
|
|
function setCamera(longitude, latitude) {
|
// One feature is located at the center, point the camera there
|
var center = Cartesian3.fromRadians(longitude, latitude);
|
scene.camera.lookAt(center, new HeadingPitchRange(0.0, -1.57, 15.0));
|
}
|
|
beforeAll(function () {
|
scene = createScene();
|
|
// Keep the error from logging to the console when running tests
|
spyOn(B3dmParser, "_deprecationWarning");
|
});
|
|
afterAll(function () {
|
scene.destroyForSpecs();
|
});
|
|
beforeEach(function () {
|
setCamera(centerLongitude, centerLatitude);
|
});
|
|
afterEach(function () {
|
scene.primitives.removeAll();
|
});
|
|
it("throws with invalid version", function () {
|
var arrayBuffer = Cesium3DTilesTester.generateBatchedTileBuffer({
|
version: 2,
|
});
|
Cesium3DTilesTester.loadTileExpectError(scene, arrayBuffer, "b3dm");
|
});
|
|
it("throws with empty gltf", function () {
|
// Expect to throw DeveloperError in Model due to invalid gltf magic
|
var arrayBuffer = Cesium3DTilesTester.generateBatchedTileBuffer();
|
Cesium3DTilesTester.loadTileExpectError(scene, arrayBuffer, "b3dm");
|
});
|
|
it("throws on undefined arrayBuffer", function () {
|
expect(function () {
|
B3dmParser.parse(undefined);
|
}).toThrowDeveloperError();
|
});
|
|
it("recognizes the legacy 20-byte header", function () {
|
return Cesium3DTilesTester.loadTileset(scene, deprecated1Url).then(
|
function (tileset) {
|
expect(B3dmParser._deprecationWarning).toHaveBeenCalled();
|
Cesium3DTilesTester.expectRenderTileset(scene, tileset);
|
var batchTable = tileset.root.content.batchTable;
|
expect(batchTable._properties).toBeDefined();
|
}
|
);
|
});
|
|
it("recognizes the legacy 24-byte header", function () {
|
return Cesium3DTilesTester.loadTileset(scene, deprecated2Url).then(
|
function (tileset) {
|
expect(B3dmParser._deprecationWarning).toHaveBeenCalled();
|
Cesium3DTilesTester.expectRenderTileset(scene, tileset);
|
var batchTable = tileset.root.content.batchTable;
|
expect(batchTable._properties).toBeDefined();
|
}
|
);
|
});
|
|
it("logs deprecation warning for use of BATCHID without prefixed underscore", function () {
|
return Cesium3DTilesTester.loadTileset(scene, deprecated1Url).then(
|
function (tileset) {
|
expect(B3dmParser._deprecationWarning).toHaveBeenCalled();
|
Cesium3DTilesTester.expectRenderTileset(scene, tileset);
|
}
|
);
|
});
|
},
|
"WebGL"
|
);
|