text: module('Controls');
  
  test('should hide volume control if it\'s not supported', function(){
    expect(2);
  
    var noop, player, volumeControl, muteToggle;
    noop = function(){};
    player = {
      id: noop,
      on: noop,
      ready: noop,
      tech: {
        features: {
          volumeControl: false
        }
      },
      volume: function(){},
      muted: function(){}
    };
  
    volumeControl = new vjs.VolumeControl(player);
    muteToggle = new vjs.MuteToggle(player);
  
    ok(volumeControl.el().className.indexOf('vjs-hidden') >= 0, 'volumeControl is not hidden');
    ok(muteToggle.el().className.indexOf('vjs-hidden') >= 0, 'muteToggle is not hidden');
  });
  
  test('should test and toggle volume control on `loadstart`', function(){
    var noop, listeners, player, volumeControl, muteToggle, i;
    noop = function(){};
    listeners = [];
    player = {
      id: noop,
      on: function(event, callback){
        listeners.push(callback);
      },
      ready: noop,
      volume: function(){
        return 1;
      },
      muted: function(){
        return false;
      },
      tech: {
        features: {
          volumeControl: true
        }
      }
    };
  
    volumeControl = new vjs.VolumeControl(player);
    muteToggle = new vjs.MuteToggle(player);
  
    ok(volumeControl.el().className.indexOf('vjs-hidden') < 0,
       'volumeControl is hidden initially');
    ok(muteToggle.el().className.indexOf('vjs-hidden') < 0,
       'muteToggle is hidden initially');
  
    player.tech.features.volumeControl = false;
    for (i = 0; i < listeners.length; i++) {
      listeners[i]();
    }
  
    ok(volumeControl.el().className.indexOf('vjs-hidden') >= 0,
       'volumeControl does not hide itself');
    ok(muteToggle.el().className.indexOf('vjs-hidden') >= 0,
       'muteToggle does not hide itself');
  
    player.tech.features.volumeControl = true;
    for (i = 0; i < listeners.length; i++) {
      listeners[i]();
    }
  
    ok(volumeControl.el().className.indexOf('vjs-hidden') < 0,
       'volumeControl does not show itself');
    ok(muteToggle.el().className.indexOf('vjs-hidden') < 0,
       'muteToggle does not show itself');
  });
  
  test('calculateDistance should use changedTouches, if available', function() {
    var noop, player, slider, event;
    noop = function(){};
    player = {
      id: noop,
      on: noop,
      ready: noop
    };
    slider = new vjs.Slider(player);
    document.body.appendChild(slider.el_);
    slider.el_.style.position = 'absolute';
    slider.el_.style.width = '200px';
    slider.el_.style.left = '0px';
  
    event = {
      pageX: 10,
      changedTouches: [{
        pageX: 100
      }]
    };
  
    equal(slider.calculateDistance(event), 0.5, 'we should have touched exactly in the center, so, the ratio should be half');
  });
  