toolkit/javascript/d3/test/core/transition-test-duration.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 require("../env");
       
     2 require("../../d3");
       
     3 
       
     4 var assert = require("assert");
       
     5 
       
     6 module.exports = {
       
     7   topic: function() {
       
     8     return d3.select("body").html("").selectAll()
       
     9         .data(["foo", "bar"])
       
    10       .enter().append("div")
       
    11         .attr("class", String);
       
    12   },
       
    13   "defaults to 250 milliseconds": function(selection) {
       
    14     var t = selection.transition();
       
    15     assert.strictEqual(t[0][0].duration, 250);
       
    16     assert.strictEqual(t[0][1].duration, 250);
       
    17   },
       
    18   "can specify duration as a number": function(selection) {
       
    19     var t = selection.transition().duration(150);
       
    20     assert.strictEqual(t[0][0].duration, 150);
       
    21     assert.strictEqual(t[0][1].duration, 150);
       
    22     t.duration(50);
       
    23     assert.strictEqual(t[0][0].duration, 50);
       
    24     assert.strictEqual(t[0][1].duration, 50);
       
    25   },
       
    26   "can specify duration as a function": function(selection) {
       
    27     var dd = [], ii = [], tt = [], t = selection.transition().duration(f);
       
    28     function f(d, i) { dd.push(d); ii.push(i); tt.push(this); return i * 20; }
       
    29     assert.strictEqual(t[0][0].duration, 0);
       
    30     assert.strictEqual(t[0][1].duration, 20);
       
    31     assert.deepEqual(dd, ["foo", "bar"], "expected data, got {actual}");
       
    32     assert.deepEqual(ii, [0, 1], "expected index, got {actual}");
       
    33     assert.domEqual(tt[0], t[0][0].node, "expected this, got {actual}");
       
    34     assert.domEqual(tt[1], t[0][1].node, "expected this, got {actual}");
       
    35   },
       
    36   "coerces duration to a number": function(selection) {
       
    37     var t = selection.transition().duration("150");
       
    38     assert.strictEqual(t[0][0].duration, 150);
       
    39     assert.strictEqual(t[0][1].duration, 150);
       
    40   }
       
    41 };