1. 30 Sep, 2014 2 commits
  2. 23 Sep, 2014 4 commits
    • Solly Ross's avatar
      Make Utils.js use Object.define to modify Array · f9fd0313
      Solly Ross authored
      Previously, we were modifying Array's prototype using
      simple assignment.  This can mess with enumeration/iteration.
      Thus, we now use Object.defineProperty with enumerable set to
      false.
      
      See #366
      f9fd0313
    • Solly Ross's avatar
      Correct Travis CI Badge URL · 58529d34
      Solly Ross authored
      The readme was using the URL for the 'refactor/cleanup'
      branch, which doesn't exist anymore.  It now uses
      the badge for the master branch as it should.
      58529d34
    • Solly Ross's avatar
      Add support for Relative Paths in the Test Runner · b11bb5c3
      Solly Ross authored
      This patch adds support for using relative paths
      with the '-r' or '--relative' methods.  This can
      be useful if you want to output HTML (with the
      '--output-html' option) and use it in a webpage.
      
      Additionally, the '-o' was removed from the documentation
      of '--output-html', since it hasn't worked for that in a
      while ('-o' means open in browser instead).
      b11bb5c3
    • Solly Ross's avatar
      Fix Race Condition in Display#clear on IE10 · 0b0b0433
      Solly Ross authored
      There was a race condition in Display#clear on IE10
      because we resize and then clear that causes the canvas
      to not actually end up cleared.  Clearing the current
      viewport first solves the issue.  It doesn't appear to
      affect other platforms, so it's inside a engine check
      (`Util.Engine.trident === 6`).  Once we stop supporting
      IE10, we should just remove this, because it's not the best
      to have Engine-specific code.
      0b0b0433
  3. 19 Sep, 2014 8 commits
    • Solly Ross's avatar
      Fixed broken mouse test in test.rfb.js · 3b4fd003
      Solly Ross authored
      Because we use the XOR (`^`) operator, the button mask must be
      set before a MouseUp event happens, otherwise we'll send a pointer
      event like it was a MouseDown event.  The button mask was not set
      in one of the tests, so the test was failing.
      3b4fd003
    • Solly Ross's avatar
      Fixed Cursor URI Support Detection · 53762c31
      Solly Ross authored
      There was a bug in cursor URI support detection due to the way
      set_defaults now works -- the code was checking for `null`, whereas
      when not set, options default to `undefined` unless otherwise
      specified.  The code now checks for either `null` or `undefined`.
      Tests have been added to ensure that this works properly.
      53762c31
    • Solly Ross's avatar
      Fixed presence detection bug in utils.set_defaults · cfc02e5e
      Solly Ross authored
      Previously, Utils.set_defaults was using `if(conf[keys[i]])`
      to check for the presence of a configuration key.  This would
      fail if `conf[keys[i]]` happened to be false.  Instead, we now
      use `if(keys[i] in conf)`, which simply checks for the presence
      of the key in the conf object.
      cfc02e5e
    • Solly Ross's avatar
      Fixed Typo Causing MouseUp to not Register · d02a99f0
      Solly Ross authored
      There was a typo in one of the instances of the _buttonMask field
      (it was written as _buttonMaks), causing MouseUp to never be sent.
      This has been rectified, and the unit tests for the mouse handler
      have been changed to check for explicitly sending mouseup and
      mousedown.
      
      Fixes #393
      d02a99f0
    • Solly Ross's avatar
      Fix Travis Sauce Tunnel Issues · f0e4548b
      Solly Ross authored
      Travis is failing because Sauce can't find the appropriate tunnelid.
      This should fix that but setting the tunnel id to be the Travis
      job number.
      f0e4548b
    • Solly's avatar
      Merge pull request #391 from mandre/fix_invalid_property · e4e9a9b9
      Solly authored
      Fix invalid updateState property on RFB preventing noVNC to load
      e4e9a9b9
    • Solly Ross's avatar
      Fixed assertion collision issues · 2c9623b5
      Solly Ross authored
      When run via karma, all the tests are loaded into the same page.
      This was causing a collision in the 'displayed' assertion dealing
      with using viewportLoc.
      
      The assertions are now in their own file, pulled in by tests that
      need them.  Additionally, several tests which only set fb_width
      and fb_height were correct to set viewportLoc as well.
      
      Closes #392
      
      Also-Authored-By: Martin André (github: mandre)
      2c9623b5
    • Solly Ross's avatar
      Added Sauce Auth Details for Travis CI · f8f95d60
      Solly Ross authored
      This will enable Travis CI to run tests on Sauce Labs
      (thanks to OpenSauce, their free program for Open
      Source Software)
      f8f95d60
  4. 17 Sep, 2014 2 commits
  5. 15 Sep, 2014 14 commits
    • Solly's avatar
      Merge pull request #368 from DirectXMan12/refactor/cleanup · 0ca7cf48
      Solly authored
      Cleanup and test all the things (plus ditching Crockford)!
      0ca7cf48
    • Solly Ross's avatar
      Add support for Travis CI and SauceLabs Testing · e6af0f60
      Solly Ross authored
      This adds support for Travis CI and SauceLabs
      testing.  Testing on SauceLabs in done via
      the Karma test runner.  Note that encrypted
      Sauce username and access key values need
      to be inserted into .travis.yml as global
      environment variables.  Additionally, the
      local test runner (which is still useful
      for debugging tests and code) was updated
      to reflect that the 'node_modules' folder
      now gets placed in the root directory.
      e6af0f60
    • Solly Ross's avatar
      Cleanup: UI code · bbbf42bb
      Solly Ross authored
      File: ui.js
      Tests Added: False
      
      Changes:
      - Fix JSHint errors
      - add some curly braces to improve clarity
      - move variable declarations to relevant locations instead of at the top
        of methods
      bbbf42bb
    • Solly Ross's avatar
      Cleanup: RFB Client · b1dee947
      Solly Ross authored
      File: rfb.js (also websock.js)
      Tests Added: True
      
      Changes:
      - De-Crockford-ified rfb.js
      - Added methods to websock.js to skip bytes in the receive queue
      b1dee947
    • Solly Ross's avatar
      Cleanup: Display Helper · 1e13775b
      Solly Ross authored
      File: display.js
      Tests Added: True (preliminary)
      
      Changes:
      - De-crockford-ified the file
      
      NOTE: the tests included for display.js cover basic functionality, but
      are by no means nearly as comprehensive as the ones presented for
      rfb.js.
      1e13775b
    • Solly Ross's avatar
      Cleanup: WebSocket Helper · 2cccf753
      Solly Ross authored
      File: websock.js
      Tests Added: True
      Changes:
      - Cleaned up JSHint errors
      - Converted to normal JS constructor pattern with "private" fields and
        methods now simply being prepended by underscores
      - Added a "bind" polyfill for use in PhantomJS 1.x in util.js
      - Added FakeWebSocket to fill in for actual WebSocket objects when
        testing
      - Made exception handler actually log exception name and message,
        to console, in addition to stack trace
      2cccf753
    • Solly Ross's avatar
      Cleanup: Webutil code · ee7d4c61
      Solly Ross authored
      File: webutil.js
      Tests Added: False
      Changes:
      - Fixed JSHint Errors (global "use strict", spaces)
      - added some newline characters when appropriate for readability
      - moved variable declarations to the places they were actually used
        for readability
      ee7d4c61
    • Solly Ross's avatar
      Cleanup: Keyboard code · 31f169e8
      Solly Ross authored
      File: keyboard.js
      Tests Added: False (already present)
      Changes:
      - Fixed JSHint Errors
      - Moved functions outside loops
      - Added proper include directives to tests
      31f169e8
    • Solly Ross's avatar
      Cleanup: Input code · d6e281ba
      Solly Ross authored
      File: input.js
      Tests Added: False (already present partially -- see below)
      Changes:
      - Fixed JSHint Errors
      - Converted to normal non-Crockford constructors
      
      NOTE: while there are tests for the actual key-detecting functionality,
            the tests do not cover the actual Keyboard and Mouse objects
            themselves.
      d6e281ba
    • Solly Ross's avatar
      Cleanup: Util code · d21cd6c1
      Solly Ross authored
      File: util.js
      Tests Added: True (partial -- for logging and array push methods)
      Changes:
      - Fixed JSHint Errors (indentation, semicolons, global "use strict")
      - Made browser detection methods more readable
      - added some newline characters when appropriate for readability
      - throw Errors not strings!
      - Removed conf_defaults, and added make_properties and set_defaults
        instead (see below)
      
      The removal of conf_defaults and switch to make_properties and
      set_defaults is to facilitate the switch over to normal Javascript
      constructors instead of Crockford-style constructors.  Now, methods
      are added to the objects prototype (and thus make properties is called
      outside the constructor).
      d21cd6c1
    • Solly Ross's avatar
      Cleanup: DES code · fb64ed21
      Solly Ross authored
      File: des.js
      Tests Added: False
      Changes:
      - Fixed JSHint Errors
      - Improved whitespace around operators
      fb64ed21
    • Solly Ross's avatar
      Cleanup and Test: base64.js · f8e9b9f1
      Solly Ross authored
      This is the first commit in a series of commits
      which improve the readability of some of the code
      and add tests.
      
      File: base64.js
      Tests Added: True
      Changes:
      - Improved indentation
      - Fixed JSHint errors
      - Moved loop variables to be declared in the loop for better readability
        (N.B. Javascript does not have block scoping, so the variables are
        still technically available outside the loop -- it just makes the code
        clearer to place them inside the loop, since they are only used there)
      f8e9b9f1
    • Solly Ross's avatar
      Support the "NOTUNNEL" tunnel type for TightVNC · 95eb681b
      Solly Ross authored
      Previously, tight auth was supported without any support for tunnels,
      even the no-op tunnel.  No, the no-op tunnel type is supported.
      95eb681b
    • Solly Ross's avatar
      Support running all tests from the root directory · 91127741
      Solly Ross authored
      Previously, if you did not specify a tests file,
      you had to be in the 'tests' directory for the
      "run all tests" functionality to work.  Now it
      will work in any directory.
      91127741
  6. 19 Aug, 2014 1 commit
  7. 03 Jun, 2014 5 commits
    • Solly Ross's avatar
      Fix race condition in test runner · 9b731d3a
      Solly Ross authored
      Previously, there would be a case where if your tests took
      too long to run, the casper test runner would only report
      on certain tests.  This has been fixed.
      9b731d3a
    • Solly Ross's avatar
      Output error events from provider in test runner · 93af721a
      Solly Ross authored
      Now, 'error' events from the test runner are output to stderr.
      Additionally, when debug is enabled, debug output is logged to
      stderr instead of stdout (as was the case previously).
      93af721a
    • Solly Ross's avatar
      Fixed typo in run_from_console.js · 7187bc12
      Solly Ross authored
      7187bc12
    • Solly Ross's avatar
      Add support for injecting test helper files · d906dfc9
      Solly Ross authored
      Now, the phrase `requires test modules: ` may be place in a comment
      in a file to require modules local to the test directory, similarly
      to the way the `require local modules: ` line may be used to inject
      files in the 'include' directory.  This is useful for when common
      fakes need to be injected into a test.
      d906dfc9
    • Solly Ross's avatar
      Support automatically opening test HTML in browser · 4a4643c0
      Solly Ross authored
      When using the '-g' option with run_from_console.js, you can
      now pass the '-o' option to automatically open the generated
      HTML file in your default browser.  This relies on the 'open'
      NPM module.
      4a4643c0
  8. 06 May, 2014 1 commit
  9. 05 May, 2014 2 commits
  10. 14 Apr, 2014 1 commit