| Index: sky/tests/js/classes.sky
|
| diff --git a/sky/tests/js/classes.sky b/sky/tests/js/classes.sky
|
| deleted file mode 100644
|
| index a8d09e272e0ad7e06b5cfe8aee1bacb86345114d..0000000000000000000000000000000000000000
|
| --- a/sky/tests/js/classes.sky
|
| +++ /dev/null
|
| @@ -1,163 +0,0 @@
|
| -<sky>
|
| -<import src="../resources/chai.sky" />
|
| -<import src="../resources/mocha.sky" />
|
| -<script>
|
| -describe("ES6 classes", function() {
|
| - it("should create instances", function() {
|
| - class Example {}
|
| - var instance = new Example();
|
| - assert.instanceOf(instance, Example);
|
| - });
|
| -
|
| - it("should create subclasses", function() {
|
| - class Parent {}
|
| - class Child extends Parent {}
|
| - var instance = new Child();
|
| - assert.instanceOf(instance, Child);
|
| - assert.instanceOf(instance, Parent);
|
| - });
|
| -
|
| - it("should create anonymous classes", function() {
|
| - var Parent = class {}
|
| - var Child = class extends Parent {}
|
| - var instance = new Child();
|
| - assert.instanceOf(instance, Child);
|
| - assert.instanceOf(instance, Parent);
|
| - });
|
| -
|
| - it("should put methods on the prototype", function() {
|
| - class Test {
|
| - exampleMethod() { }
|
| - }
|
| - var instance = new Test();
|
| - assert.isFalse(instance.hasOwnProperty("exampleMethod"));
|
| - var proto = Object.getPrototypeOf(instance);
|
| - assert.isTrue(proto.hasOwnProperty("exampleMethod"));
|
| - });
|
| -
|
| - it("should call methods with |this|", function() {
|
| - class Adder {
|
| - constructor(value) {
|
| - this.value = value;
|
| - }
|
| - add(other) {
|
| - return this.value + other;
|
| - }
|
| - }
|
| -
|
| - var adder = new Adder(10);
|
| - assert.equal(adder.add(15), 25);
|
| - });
|
| -
|
| - it("should let toMethod rebind super", function() {
|
| - var getValue = function() {
|
| - assert.isFunction(this.value);
|
| - assert.isFunction(this.superValue);
|
| - return this.value() + super.superValue();
|
| - }
|
| -
|
| - class HolderParent {
|
| - superValue() {
|
| - return 5;
|
| - }
|
| - }
|
| -
|
| - class Holder extends HolderParent {
|
| - constructor() {
|
| - this.value_ = 5;
|
| - }
|
| - value() {
|
| - return this.value_;
|
| - }
|
| - }
|
| -
|
| - var holder = new Holder();
|
| - var getValueMethod = getValue.toMethod(Holder.prototype);
|
| - assert.equal(getValueMethod.call(holder), 10);
|
| - });
|
| -
|
| - it("should support super() constructor calls", function() {
|
| - class Parent {
|
| - constructor(value) {
|
| - this.value = value;
|
| - }
|
| - }
|
| -
|
| - class Child extends Parent {
|
| - constructor(value) {
|
| - super(value + 5);
|
| - }
|
| - }
|
| -
|
| - var child = new Child(10);
|
| - assert.equal(child.value, 15);
|
| - });
|
| -
|
| - it("should automatically call super() in default constructor", function() {
|
| - class Parent {
|
| - constructor() {
|
| - this.value = 10;
|
| - }
|
| - }
|
| -
|
| - class Child extends Parent {
|
| - }
|
| -
|
| - var child = new Child();
|
| - assert.equal(child.value, 10);
|
| - });
|
| -
|
| - it("should call super.method()", function() {
|
| - class Parent {
|
| - value() {
|
| - return 10;
|
| - }
|
| - }
|
| -
|
| - class Child extends Parent {
|
| - value() {
|
| - return super.value() + 5;
|
| - }
|
| - }
|
| -
|
| - var child = new Child();
|
| - assert.equal(child.value(), 15);
|
| - });
|
| -
|
| - it("should support getters and setters", function() {
|
| - class Variable {
|
| - constructor(value) {
|
| - this.value_ = value;
|
| - }
|
| -
|
| - get value() {
|
| - return this.value_;
|
| - }
|
| -
|
| - set value(newValue) {
|
| - this.value_ = newValue;
|
| - }
|
| - }
|
| -
|
| - var variable = new Variable("first");
|
| -
|
| - // Methods are on the prototype.
|
| - var proto = Object.getPrototypeOf(variable);
|
| - var descriptor = Object.getOwnPropertyDescriptor(proto, "value");
|
| - assert.isObject(descriptor);
|
| - assert.isFunction(descriptor.get);
|
| - assert.isFunction(descriptor.set);
|
| - assert.isUndefined(descriptor.value);
|
| -
|
| - // Getter and setter should not be on the instance.
|
| - assert.isUndefined(Object.getOwnPropertyDescriptor(variable, "value"));
|
| -
|
| - assert.equal(variable.value, "first");
|
| - assert.equal(variable.value_, "first");
|
| - variable.value = "second";
|
| - assert.equal(variable.value, "second");
|
| - assert.equal(variable.value_, "second");
|
| - });
|
| -});
|
| -</script>
|
| -</sky>
|
|
|