Newer
Older
reroad-test / 2020-ryusei / aframe-master / tests / extras / primitives / primitives / meshPrimitives.test.js
@ryusei ryusei on 22 Oct 2020 1 KB パノラマ表示
/* global assert, suite, test, setup */
var helpers = require('../../../helpers');
var geometryNames = require('core/geometry').geometryNames;
var primitives = require('extras/primitives/primitives/meshPrimitives');
var utils = require('utils/');

suite('meshPrimitives', function () {
  setup(function createScene (done) {
    var self = this;
    var el = helpers.entityFactory();
    el.addEventListener('loaded', function () {
      self.sceneEl = el.sceneEl;
      done();
    });
  });

  test('registers a-box', function (done) {
    var el = document.createElement('a-box');
    this.sceneEl.appendChild(el);
    el.addEventListener('loaded', function () {
      assert.ok(el.isEntity);
      done();
    });
  });

  test('registers a-dodecahedron', function (done) {
    var el = document.createElement('a-dodecahedron');
    this.sceneEl.appendChild(el);
    el.addEventListener('loaded', function () {
      assert.ok(el.isEntity);
      done();
    });
  });

  test('registers a-box with mappings', function (done) {
    var el = document.createElement('a-box');
    this.sceneEl.appendChild(el);
    el.addEventListener('loaded', function () {
      el.setAttribute('color', 'red');
      el.setAttribute('depth', 5);
      el.setAttribute('side', 'back');
      process.nextTick(function () {
        assert.equal(el.getAttribute('material').color, 'red');
        assert.equal(el.getAttribute('material').side, 'back');
        assert.equal(el.getAttribute('geometry').depth, 5);
      });
      done();
    });
  });

  test('registers every geometry', function () {
    function removeA (str) { return str.replace('a-', ''); }
    assert.shallowDeepEqual(
      Object.keys(primitives).map(removeA).map(utils.styleParser.toCamelCase),
      geometryNames);
  });
});