Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: karma-runner/karma
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9cd65cd0d9b063d54953013105904e9b55822f47
Choose a base ref
...
head repository: karma-runner/karma
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: db41e8e8c6bcfe59ed67cc2d2c5c1e3fda174d2a
Choose a head ref

Commits on Sep 9, 2016

  1. fix(config): add crossOriginAttribute config option

    This enables the loading of external scripts without the
    required CORS headers being set.
    cweiss-stripe committed Sep 9, 2016
    Copy the full SHA
    1e465b1 View commit details

Commits on Sep 11, 2016

  1. Copy the full SHA
    9ef4d05 View commit details

Commits on Sep 13, 2016

  1. Copy the full SHA
    c0b649f View commit details
  2. Merge pull request #2354 from thorn0/patch-1

    docs(config): document--no-browsers option
    dignifiedquire authored Sep 13, 2016
    Copy the full SHA
    0bb7820 View commit details

Commits on Sep 14, 2016

  1. Merge pull request #2318 from dotch/fix-crossorigin

    fix(runner): Fix loading of external scripts without cors headers
    dignifiedquire authored Sep 14, 2016
    Copy the full SHA
    39d378d View commit details

Commits on Oct 14, 2016

  1. Copy the full SHA
    16050fe View commit details

Commits on Nov 10, 2016

  1. feat(web-server): allow overriding of default http module

    allow setting an external module for use by KarmaServer
    
    Closes #2424
    itslenny committed Nov 10, 2016
    Copy the full SHA
    1e7514d View commit details

Commits on Nov 16, 2016

  1. Copy the full SHA
    b82937e View commit details
  2. Merge pull request #2445 from itslenny/AllowUsingAnExternalHttpModule

    feat(web-server): allow overriding of default http module
    dignifiedquire authored Nov 16, 2016
    Copy the full SHA
    9fae5e8 View commit details
  3. fix(reporter): do not allow URL domains to span new lines

    This was causing some excruciating error logs with the default format of cross-domain iframe errors:
    
    ```
    Error: Blocked a frame with origin "http://localhost:9876" from accessing a cross-origin frame.
        at Error (native)
        at Function.method.restore (absolute/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/fa96dc8102e4c5416f4cd38061107a08.browserify?f4458f57b50ae627f718945da619dae7c682b4a0:60376:28)
        at each (absolute/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/fa96dc8102e4c5416f4cd38061107a08.browserify?f4458f57b50ae627f718945da619dae7c682b4a0:57875:33)
        at Object.restore (absolute/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/fa96dc8102e4c5416f4cd38061107a08.browserify?f4458f57b50ae627f718945da619dae7c682b4a0:57895:17)
        at Object.restore (absolute/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/fa96dc8102e4c5416f4cd38061107a08.browserify?f4458f57b50ae627f718945da619dae7c682b4a0:59163:42)
        at Context.<anonymous> (absolute/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/fa96dc8102e4c5416f4cd38061107a08.browserify?f4458f57b50ae627f718945da619dae7c682b4a0:109551:13)
    ```
    
    The old regex would find that `https://` then include everything that wasn't a slash, which included the next two lines into the `/absolute`. The output would be similar to:
    
    ```
    	Error: Blocked a frame with origin "/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/afde9a0a28f71236ac3340462d6ca94e.browserify:60376:28 <- node_modules/sinon/lib/sinon/util/core.js:154:0)
    	    at each (/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/afde9a0a28f71236ac3340462d6ca94e.browserify:57875:33 <- node_modules/sinon/lib/sinon/collection.js:34:0)
    ...
    ```
    
    With this, we prevent the domain from spanning the newline character, and now the output is:
    
    ```
    	Error: Blocked a frame with origin "http://localhost:9876" from accessing a cross-origin frame.
    	    at Error (native)
    	    at Function.method.restore (/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/6c039bf5162f620e4d2667e56f143a02.browserify:60376:28 <- node_modules/sinon/lib/sinon/util/core.js:154:0)
    	    at each (/var/folders/8m/vg2kf8h50bj9gy5r9gwn20dw00_y0z/T/6c039bf5162f620e4d2667e56f143a02.browserify:57875:33 <- node_modules/sinon/lib/sinon/collection.js:34:0)
    ...
    ```
    jridgewell authored and dignifiedquire committed Nov 16, 2016
    Copy the full SHA
    2c13404 View commit details
  4. fix(cli): restore shell completion in the npm package

    Restore scripts from .npmignore to fix karma completion command
    
    Closes #2351
    kevinzwhuang authored and dignifiedquire committed Nov 16, 2016
    Copy the full SHA
    f56b5a5 View commit details
  5. docs: Correct grammar, punctuation, add link

    Rewrote some sentences to make the 'flow' better.  Added a link to text 'Configuration File'.
    vivganes authored and dignifiedquire committed Nov 16, 2016
    Copy the full SHA
    8e2cfab View commit details

Commits on Nov 29, 2016

  1. Copy the full SHA
    7d2c1ae View commit details

Commits on Dec 2, 2016

  1. Copy the full SHA
    86e2ef2 View commit details

Commits on Dec 6, 2016

  1. chore(deps): upgrade glob to 7.1.1?

    Upgrade glob to an up to date version to avoid regression.
    
    Fixes #2325
    wesleycho authored and dignifiedquire committed Dec 6, 2016
    Copy the full SHA
    43247f3 View commit details
  2. chore: upgrade socket.io to 1.7.1

    This contains the fix for the Uint8Array regression in IE9.
    
    Fixes #2190
    wesleycho authored and dignifiedquire committed Dec 6, 2016
    Copy the full SHA
    d1a167f View commit details

Commits on Dec 7, 2016

  1. fix(middleware): update Buffer usage

    Update Buffer usage to non-deprecated methods of creating a Buffer, polyfilling with `safer-buffer`.
    wesleycho authored and dignifiedquire committed Dec 7, 2016
    Copy the full SHA
    3d94b8c View commit details
  2. feat(api): add constants to the public api

    Make `constants` available for public usage.
    
    Fixes #2361
    wesleycho authored and dignifiedquire committed Dec 7, 2016
    Copy the full SHA
    ee10977 View commit details

Commits on Dec 8, 2016

  1. Copy the full SHA
    dbca5fb View commit details

Commits on Dec 9, 2016

  1. Merge pull request #2494 from karma-runner/greenkeeper-coffee-script-…

    …1.12.1
    
    coffee-script@1.12.1 breaks build ⚠️
    dignifiedquire authored Dec 9, 2016
    Copy the full SHA
    646c84d View commit details

Commits on Dec 11, 2016

  1. Copy the full SHA
    36cd058 View commit details
  2. Merge pull request #2498 from karma-runner/greenkeeper-socket.io-1.7.2

    Update socket.io to version 1.7.2 🚀
    dignifiedquire authored Dec 11, 2016
    Copy the full SHA
    6763719 View commit details
  3. feat(server): add listen address option so that IPv6 and loopback int…

    …erfaces can be used
    
    
    Fixes #2477
    grifball authored and dignifiedquire committed Dec 11, 2016
    Copy the full SHA
    8e5bee6 View commit details

Commits on Dec 12, 2016

  1. Copy the full SHA
    bb890a8 View commit details

Commits on Dec 21, 2016

  1. Copy the full SHA
    999e36f View commit details

Commits on Dec 30, 2016

  1. docs(semaphore): update Semaphore CI description

    Dunja Radulov authored and dignifiedquire committed Dec 30, 2016
    Copy the full SHA
    58ccb27 View commit details

Commits on Jan 1, 2017

  1. test: upgrade mocha to v3

    wesleycho authored and dignifiedquire committed Jan 1, 2017
    Copy the full SHA
    62c33f0 View commit details
  2. Copy the full SHA
    c9a3a63 View commit details
  3. Merge pull request #2503 from karma-runner/greenkeeper-eslint-3.12.1

    Update eslint to version 3.12.1 🚀
    dignifiedquire authored Jan 1, 2017
    Copy the full SHA
    13cefee View commit details

Commits on Jan 6, 2017

  1. Copy the full SHA
    c20d004 View commit details

Commits on Jan 8, 2017

  1. Copy the full SHA
    495ab0c View commit details

Commits on Jan 9, 2017

  1. Copy the full SHA
    ea40f15 View commit details

Commits on Jan 11, 2017

  1. Merge pull request #2531 from karma-runner/greenkeeper-grunt-auto-rel…

    …ease-0.0.7
    
    Update grunt-auto-release to version 0.0.7 🚀
    dignifiedquire authored Jan 11, 2017
    Copy the full SHA
    daeb31e View commit details
  2. Merge pull request #2530 from karma-runner/greenkeeper-eslint-plugin-…

    …react-6.9.0
    
    Update eslint-plugin-react to version 6.9.0 🚀
    dignifiedquire authored Jan 11, 2017
    Copy the full SHA
    85beac2 View commit details
  3. Merge pull request #2527 from karma-runner/greenkeeper-qunitjs-2.1.1

    Update qunitjs to version 2.1.1 🚀
    dignifiedquire authored Jan 11, 2017
    Copy the full SHA
    e89f092 View commit details
  4. Merge pull request #2510 from karma-runner/greenkeeper-useragent-2.1.10

    useragent@2.1.10 breaks build 🚨
    dignifiedquire authored Jan 11, 2017
    Copy the full SHA
    79bc193 View commit details

Commits on Jan 12, 2017

  1. fix(runner): Make process kill timeout configurable

    Add a new user configurable property processKillTimeout to set timeout for any spawned process
    Closes #2447
    vivganes committed Jan 12, 2017
    Copy the full SHA
    ffaa054 View commit details
  2. fix(runner): Make process kill timeout configurable - Fix Build

    Fixing build (Writing value of 2000 in case of variable not being initialized)
    Closes #2447
    vivganes committed Jan 12, 2017
    Copy the full SHA
    a128e5c View commit details

Commits on Jan 14, 2017

  1. Copy the full SHA
    305df2c View commit details
  2. fix(browser): filter browser logging by level

    Do not log lower levels if `browserConsoleLogOptions.level` is set
    
    Fixes  #2228
    wesleycho authored and dignifiedquire committed Jan 14, 2017
    Copy the full SHA
    35965d9 View commit details
  3. feat(client): capture confirm & prompt

    Capture `window.confirm` & `window.prompt` usages in client
    
    Fixes #694
    wesleycho authored and dignifiedquire committed Jan 14, 2017
    Copy the full SHA
    3a618b3 View commit details
  4. fix(reporter): strip only hostname/port

    Strip only specified hostname & port from result
    
    Fixes #2209
    wesleycho authored and dignifiedquire committed Jan 14, 2017
    Copy the full SHA
    fbbeccf View commit details
  5. Copy the full SHA
    c168b79 View commit details
  6. chore: release v1.4.0

    dignifiedquire committed Jan 14, 2017
    Copy the full SHA
    99d647b View commit details

Commits on Jan 15, 2017

  1. fix(runner): Test process kill timeout config

    Add new unit test for processKillTimeout configuration
    Closes #2447
    vivganes committed Jan 15, 2017
    Copy the full SHA
    99a1d48 View commit details
  2. feat(config): allow config to be a default export

    Matt Lewis committed Jan 15, 2017
    Copy the full SHA
    9976dce View commit details
  3. chore: switch from ghooks to husky

    Matt Lewis committed Jan 15, 2017
    Copy the full SHA
    48dad20 View commit details

Commits on Jan 18, 2017

  1. Merge pull request #2536 from mattlewis92/default-export-config

    feat(config): allow config to be a default export
    dignifiedquire authored Jan 18, 2017
    Copy the full SHA
    27d9b12 View commit details
  2. Merge pull request #2537 from mattlewis92/switch-gooks-to-husly

    chore: switch from ghooks to husky
    dignifiedquire authored Jan 18, 2017
    Copy the full SHA
    b8b02aa View commit details
  3. Merge pull request #2533 from vivganes/dev

    fix(runner): Make process kill timeout configurable
    dignifiedquire authored Jan 18, 2017
    Copy the full SHA
    0bec015 View commit details
Showing with 8,914 additions and 976 deletions.
  1. +0 −3 .babelrc
  2. +1 −0 .gitignore
  3. +1 −0 .mailmap
  4. +2 −2 .npmignore
  5. +10 −7 .travis.yml
  6. +159 −0 CHANGELOG.md
  7. +1 −1 CONTRIBUTING.md
  8. +1 −1 README.md
  9. +2 −3 appveyor.yml
  10. +74 −13 client/karma.js
  11. +6 −0 client/updater.js
  12. +12 −1 common/stringify.js
  13. +1 −1 config.tpl.coffee
  14. +1 −1 config.tpl.js
  15. +1 −1 config.tpl.ls
  16. +1 −1 config.tpl.ts
  17. +0 −5 console.log
  18. +13 −0 context/karma.js
  19. +111 −14 docs/config/01-configuration-file.md
  20. +11 −0 docs/config/02-files.md
  21. +9 −8 docs/config/03-browsers.md
  22. +1 −0 docs/dev/02-making-changes.md
  23. +71 −1 docs/dev/04-public-api.md
  24. +10 −0 docs/dev/06-git-commit-msg.md
  25. +1 −1 docs/intro/01-installation.md
  26. +1 −1 docs/intro/04-faq.md
  27. +9 −9 docs/plus/04-semaphore.md
  28. +5 −23 gruntfile.js
  29. +7 −0 lib/browser.js
  30. +3 −0 lib/cli.js
  31. +65 −6 lib/config.js
  32. +10 −0 lib/constants.js
  33. +18 −12 lib/file-list.js
  34. +3 −1 lib/file.js
  35. +2 −9 lib/helper.js
  36. +3 −0 lib/index.js
  37. +10 −5 lib/launcher.js
  38. +32 −5 lib/launchers/process.js
  39. +45 −16 lib/logger.js
  40. +5 −4 lib/middleware/common.js
  41. +61 −18 lib/middleware/karma.js
  42. +7 −0 lib/middleware/proxy.js
  43. +5 −6 lib/middleware/source_files.js
  44. +1 −1 lib/middleware/strip_host.js
  45. +14 −4 lib/preprocessor.js
  46. +5 −3 lib/reporter.js
  47. +8 −2 lib/reporters/base.js
  48. +1 −0 lib/reporters/progress.js
  49. +60 −16 lib/server.js
  50. +3 −3 lib/watcher.js
  51. +5 −0 lib/web-server.js
  52. +209 −171 package.json
  53. +8 −2 scripts/validate-commit-msg.sh
  54. +1 −1 static/client.html
  55. +125 −0 static/client_with_context.html
  56. +2 −2 static/debug.js
  57. +3 −0 test/.eslintrc
  58. +38 −1 test/client/karma.spec.js
  59. +12 −0 test/client/stringify.spec.js
  60. +9 −9 test/e2e/browser_console.feature
  61. +30 −8 test/e2e/files.feature
  62. +20 −0 test/e2e/launcher-error.feature
  63. +67 −0 test/e2e/runInParent.feature
  64. +264 −0 test/e2e/step_definitions/core_steps.js
  65. +5 −3 test/e2e/{support/after_hooks.js → step_definitions/hooks.js}
  66. +0 −227 test/e2e/steps/core_steps.js
  67. +4 −4 test/e2e/support/env.js
  68. +4 −0 test/e2e/support/launcher-error/fake-browser.sh
  69. +5 −0 test/e2e/support/launcher-error/specs.js
  70. +6 −1 test/e2e/support/world.js
  71. +10 −0 test/unit/browser.spec.js
  72. +19 −5 test/unit/cli.spec.js
  73. +1 −1 test/unit/completion.spec.js
  74. +31 −22 test/unit/config.spec.js
  75. +3 −2 test/unit/emitter_wrapper.spec.js
  76. +1 −1 test/unit/events.spec.js
  77. +271 −84 test/unit/file-list.spec.js
  78. +1 −1 test/unit/helper.spec.js
  79. +9 −0 test/unit/index.spec.js
  80. +2 −1 test/unit/init.spec.js
  81. +4 −2 test/unit/init/formatters.spec.js
  82. +1 −1 test/unit/init/state_machine.spec.js
  83. +41 −44 test/unit/launcher.spec.js
  84. +3 −3 test/unit/launchers/base.spec.js
  85. +3 −3 test/unit/launchers/capture_timeout.spec.js
  86. +75 −9 test/unit/launchers/process.spec.js
  87. +4 −4 test/unit/launchers/retry.spec.js
  88. +30 −6 test/unit/logger.spec.js
  89. +40 −17 test/unit/middleware/karma.spec.js
  90. +13 −1 test/unit/middleware/proxy.spec.js
  91. +18 −16 test/unit/middleware/runner.spec.js
  92. +14 −20 test/unit/middleware/source_files.spec.js
  93. +1 −1 test/unit/middleware/strip_host.spec.js
  94. +1 −1 test/unit/mocks/timer.js
  95. +80 −21 test/unit/preprocessor.spec.js
  96. +43 −27 test/unit/reporter.spec.js
  97. +105 −1 test/unit/reporters/base.spec.js
  98. +43 −0 test/unit/reporters/progress.spec.js
  99. +16 −15 test/unit/runner.spec.js
  100. +64 −18 test/unit/server.spec.js
  101. +2 −2 test/unit/watcher.spec.js
  102. +50 −10 test/unit/web-server.spec.js
  103. +6,215 −0 yarn.lock
3 changes: 0 additions & 3 deletions .babelrc

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ tmp/*
docs/_build
*.swp
*.swo
test/e2e/console.log
test/e2e/coverage/coverage
test/e2e/coverageQunit/coverage
test/e2e/coverageRequirejs/coverage
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<bitwiseman@gmail.com> <lnewman@book.com>
<vojta.jina@gmail.com> <vojta@google.com>
<friedel.ziegelmayer@gmail.com> <dignifiedquire@gmail.com>
Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
4 changes: 2 additions & 2 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -4,9 +4,7 @@
tmp
test
tasks
scripts
docs
client
logo
integration-tests

@@ -16,6 +14,8 @@ Gruntfile.coffee
credentials
Karma.sublime-*

static/karma.js
static/context.js
static/karma.src.js
static/karma.wrapper
test-results.xml
17 changes: 10 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
sudo: false
language: node_js
node_js:
- "0.10"
- "0.12"
- 4
- 5
- 6
- 8
- 9

env:
global:
- SAUCE_USERNAME: karmarunnerbot
- secure: "bRVY+hYZwMf1SqVnMyZRJTLD0gN1hLx9/MwO8MM/qBiu3YNjXy49XElfMdzMKN6cZeKTmhcnjmZonbJuI1PQ2t+utGkyjnlVLJ/OlWptreKLzIlcbt4hrdPoTcjmUTwDWq9Ex9cVoYX8AzCasETttpczp3P+s3+vmOUj8z25JyU="
- CXX=g++-4.8
matrix:
fast_finish: true
include:
- node_js: "5"
env: VALIDATE_COMMIT_MSG=TRUE
- node_js: "8"
env: VALIDATE_COMMIT_MSG=true LINT=true

before_install:
- npm config set loglevel warn
- g++-4.8 --version
- npm install -g npm
- if [[ "`node --version`" = v4* ]]; then npm install -g npm@latest-3; fi

addons:
firefox:
@@ -35,6 +36,8 @@ before_script:
- sh -e /etc/init.d/xvfb start
- npm run init
- export $(openssl aes-256-cbc -pass env:CREDENTIALS_PASS -d -in credentials)
- 'if [ "$VALIDATE_COMMIT_MSG" == "true" ]; then ./scripts/validate-commit-msg.sh $TRAVIS_COMMIT; fi'
- 'if [ "$LINT" == "true" ]; then npm run lint; fi'

script:
- 'if [ "${VALIDATE_COMMIT_MSG}" != "TRUE" ]; then npm run travis; else ./scripts/validate-commit-msg.sh "${TRAVIS_COMMIT}"; fi'
- npm run travis
159 changes: 159 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,162 @@
<a name="2.0.0"></a>
# [2.0.0](https://github.com/karma-runner/karma/compare/v1.7.1...v2.0.0) (2017-12-21)


### Bug Fixes

* **config:** Call debug log methods after setting the loglevel based upon config/cli-options. ([99fd3f0](https://github.com/karma-runner/karma/commit/99fd3f0))
* **config:** Call debug log methods after setting the loglevel based upon config/cli-options. ([a340dae](https://github.com/karma-runner/karma/commit/a340dae))
* **config:** Retry install with appveyor-retry. ([17d5791](https://github.com/karma-runner/karma/commit/17d5791))
* **config:** Workaround npm 5.4 windows bug ([ec47d81](https://github.com/karma-runner/karma/commit/ec47d81))
* **deps:** update socket.io to version 2.0.3. ([3b7b019](https://github.com/karma-runner/karma/commit/3b7b019)), closes [#2821](https://github.com/karma-runner/karma/issues/2821) [#2777](https://github.com/karma-runner/karma/issues/2777)
* **logging:** Upgrade to log4js 2.x API. ([#2868](https://github.com/karma-runner/karma/issues/2868)) ([f6f8707](https://github.com/karma-runner/karma/commit/f6f8707)), closes [#2858](https://github.com/karma-runner/karma/issues/2858)
* **reporter:** show file path correctly when urlRoot specified ([34dc7d3](https://github.com/karma-runner/karma/commit/34dc7d3)), closes [#2897](https://github.com/karma-runner/karma/issues/2897)


### Features

* **cli:** Warn on commands with underscores. ([0801a7f](https://github.com/karma-runner/karma/commit/0801a7f))
* **config:** allow to use newer versions of CoffeeScript ([c1fcf42](https://github.com/karma-runner/karma/commit/c1fcf42))
* **launcher:** trim whitespace in browser name ([871d46f](https://github.com/karma-runner/karma/commit/871d46f))
* **launcher:** trim whitespace in browser name ([334f9fb](https://github.com/karma-runner/karma/commit/334f9fb))
* **middleware:** added manual file type option ([0330cd1](https://github.com/karma-runner/karma/commit/0330cd1)), closes [#2824](https://github.com/karma-runner/karma/issues/2824)
* better string representation of errors ([c9e1ca9](https://github.com/karma-runner/karma/commit/c9e1ca9))
* drop core-js and babel where possible ([60dfc5c](https://github.com/karma-runner/karma/commit/60dfc5c))
* update of supported node versions ([e79463b](https://github.com/karma-runner/karma/commit/e79463b))



<a name="1.7.1"></a>
## [1.7.1](https://github.com/karma-runner/karma/compare/v1.7.0...1.7.1) (2017-08-25)


### Bug Fixes

* **debug-runner:** support asynchronous tests in the debug runner ([a36f3eb](https://github.com/karma-runner/karma/commit/a36f3eb)), closes [#2811](https://github.com/karma-runner/karma/issues/2811)
* **file-list:** Stop polluting global environment with core-js ([0988022](https://github.com/karma-runner/karma/commit/0988022))
* **preprocessor:** renamed handeFile to readFileCallback ([92a8c81](https://github.com/karma-runner/karma/commit/92a8c81))
* **preprocessor:** retry if fs.readFile fails ([4b60513](https://github.com/karma-runner/karma/commit/4b60513))
* **preprocessor:** throw if retry fails ([2789bf5](https://github.com/karma-runner/karma/commit/2789bf5))


### Features

* **ci:** disable testing of node versions below 4 ([ec92ea9](https://github.com/karma-runner/karma/commit/ec92ea9))
* **client:** log global error stack trace ([523d608](https://github.com/karma-runner/karma/commit/523d608)), closes [#2812](https://github.com/karma-runner/karma/issues/2812)
* **config:** remove polling usage ([b0f41c7](https://github.com/karma-runner/karma/commit/b0f41c7)), closes [#2669](https://github.com/karma-runner/karma/issues/2669)
* **deps:** add support for node@8 ([7feaee3](https://github.com/karma-runner/karma/commit/7feaee3)), closes [#2754](https://github.com/karma-runner/karma/issues/2754)
* **deps:** update socket.io to `1.7.4` to avoid issue with `ws@1.1.2` ([264442b](https://github.com/karma-runner/karma/commit/264442b)), closes [#2593](https://github.com/karma-runner/karma/issues/2593)
* **watcher:** Debounce autoWatchBatchDelay ([2f8c049](https://github.com/karma-runner/karma/commit/2f8c049)), closes [#2331](https://github.com/karma-runner/karma/issues/2331)



<a name="1.7.1"></a>
## [1.7.1](https://github.com/karma-runner/karma/compare/v1.7.0...v1.7.1) (2017-08-30)


### Features

* **deps:** add support for node[@8](https://github.com/8) ([ea32194](https://github.com/karma-runner/karma/commit/ea32194)), closes [#2754](https://github.com/karma-runner/karma/issues/2754)



<a name="1.7.0"></a>
# [1.7.0](https://github.com/karma-runner/karma/compare/v1.6.0...v1.7.0) (2017-05-06)


### Bug Fixes

* **middleware:** change to use vanilla for loop ([ac62cc0](https://github.com/karma-runner/karma/commit/ac62cc0)), closes [#2671](https://github.com/karma-runner/karma/issues/2671)
* **reporters:** Revert the backwards-incompatible log priority order changes ([316b944](https://github.com/karma-runner/karma/commit/316b944)), closes [#2582](https://github.com/karma-runner/karma/issues/2582)


### Features

* **runner:** Buffer stdout and stderr for output when errors occur ([460d423](https://github.com/karma-runner/karma/commit/460d423))



<a name="1.6.0"></a>
# [1.6.0](https://github.com/karma-runner/karma/compare/v1.5.0...v1.6.0) (2017-04-05)


### Bug Fixes

* **client:** add proxy support to stringify ([be10116](https://github.com/karma-runner/karma/commit/be10116))
* **file-list:** always use file from first matcher ([74bfdf3](https://github.com/karma-runner/karma/commit/74bfdf3))
* **middleware:** does not work with mootools ([#2591](https://github.com/karma-runner/karma/issues/2591)) ([2685e13](https://github.com/karma-runner/karma/commit/2685e13))
* **reporter:** keep users exact formatError result ([17c2c43](https://github.com/karma-runner/karma/commit/17c2c43))


### Features

* **browser:** add browser_info event ([09ac7d7](https://github.com/karma-runner/karma/commit/09ac7d7)), closes [#2192](https://github.com/karma-runner/karma/issues/2192)
* **launcher:** output stderr for failing launchers ([7d33398](https://github.com/karma-runner/karma/commit/7d33398))
* **proxy:** add proxy events to config ([f5d99fb](https://github.com/karma-runner/karma/commit/f5d99fb))



<a name="1.5.0"></a>
# [1.5.0](https://github.com/karma-runner/karma/compare/v1.4.1...v1.5.0) (2017-02-20)


### Bug Fixes

* filter browser logging by level of LOG ([89a7a1c](https://github.com/karma-runner/karma/commit/89a7a1c)), closes [#2228](https://github.com/karma-runner/karma/issues/2228)
* make window.parent.karma available in debugged context ([3e7eaeb](https://github.com/karma-runner/karma/commit/3e7eaeb))
* **client:** don't crash if receive array-like results ([e095411](https://github.com/karma-runner/karma/commit/e095411)), closes [#2061](https://github.com/karma-runner/karma/issues/2061)


### Features

* add an option to run the tests by dynamically loading test scripts without iframe ([aa42c41](https://github.com/karma-runner/karma/commit/aa42c41))
* add support for node[@7](https://github.com/7) ([eb407ab](https://github.com/karma-runner/karma/commit/eb407ab)), closes [#2559](https://github.com/karma-runner/karma/issues/2559)



<a name="1.4.1"></a>
## [1.4.1](https://github.com/karma-runner/karma/compare/v1.4.0...v1.4.1) (2017-01-29)


### Bug Fixes

* **runner:** Make process kill timeout configurable ([ffaa054](https://github.com/karma-runner/karma/commit/ffaa054)), closes [#2447](https://github.com/karma-runner/karma/issues/2447)
* **runner:** Make process kill timeout configurable - Fix Build ([a128e5c](https://github.com/karma-runner/karma/commit/a128e5c)), closes [#2447](https://github.com/karma-runner/karma/issues/2447)
* **runner:** Test process kill timeout config ([99a1d48](https://github.com/karma-runner/karma/commit/99a1d48)), closes [#2447](https://github.com/karma-runner/karma/issues/2447)


### Features

* **config:** allow config to be a default export ([9976dce](https://github.com/karma-runner/karma/commit/9976dce))



<a name="1.4.0"></a>
# [1.4.0](https://github.com/karma-runner/karma/compare/v1.3.0...v1.4.0) (2017-01-14)


### Bug Fixes

* **browser:** filter browser logging by level ([35965d9](https://github.com/karma-runner/karma/commit/35965d9)), closes [#2228](https://github.com/karma-runner/karma/issues/2228)
* **cli:** restore shell completion in the npm package ([f56b5a5](https://github.com/karma-runner/karma/commit/f56b5a5)), closes [#2351](https://github.com/karma-runner/karma/issues/2351)
* **config:** add crossOriginAttribute config option ([1e465b1](https://github.com/karma-runner/karma/commit/1e465b1))
* **middleware:** update `Buffer` usage ([3d94b8c](https://github.com/karma-runner/karma/commit/3d94b8c))
* **reporter:** do not allow URL domains to span new lines ([2c13404](https://github.com/karma-runner/karma/commit/2c13404))
* **reporter:** strip only hostname/port ([fbbeccf](https://github.com/karma-runner/karma/commit/fbbeccf)), closes [#2209](https://github.com/karma-runner/karma/issues/2209)
* **reporters:** cannot read property map of undefined ([305df2c](https://github.com/karma-runner/karma/commit/305df2c)), closes [#1662](https://github.com/karma-runner/karma/issues/1662)
* **server:** exit with code 1 when failing due to missing browser ([86e2ef2](https://github.com/karma-runner/karma/commit/86e2ef2)), closes [#2403](https://github.com/karma-runner/karma/issues/2403)


### Features

* **api:** add constants to the public api ([ee10977](https://github.com/karma-runner/karma/commit/ee10977)), closes [#2361](https://github.com/karma-runner/karma/issues/2361)
* **api:** expose `config.parseConfig` on the public api ([7d2c1ae](https://github.com/karma-runner/karma/commit/7d2c1ae))
* **client:** capture confirm & prompt ([3a618b3](https://github.com/karma-runner/karma/commit/3a618b3)), closes [#694](https://github.com/karma-runner/karma/issues/694)
* **server:** add listen address option so that IPv6 and loopback interfaces can be used ([8e5bee6](https://github.com/karma-runner/karma/commit/8e5bee6)), closes [#2477](https://github.com/karma-runner/karma/issues/2477)
* **web-server:** allow overriding of default http module ([1e7514d](https://github.com/karma-runner/karma/commit/1e7514d)), closes [#2424](https://github.com/karma-runner/karma/issues/2424)



<a name="1.3.0"></a>
# [1.3.0](https://github.com/karma-runner/karma/compare/v1.2.0...v1.3.0) (2016-09-09)

2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ submitting an issue to our [GitHub Repository][github_newissue]. Even better you
with a fix.

**Working on your first Pull Request?** You can learn how from this *free* series
[How to Contribute to an Open Source Project on GitHub](egghead_series)
[How to Contribute to an Open Source Project on GitHub][egghead_series]

[docs_contributing]: http://karma-runner.github.io/0.13/dev/contributing.html
[gitter]: https://gitter.im/karma-runner/karma
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ _real_ browsers.
## But I still want to use \_insert testing library\_

Karma is not a testing framework, nor an assertion library.
Karma just launches a HTTP server, and generates the test runner HTML file you probably already know from your favourite testing framework.
Karma just launches an HTTP server, and generates the test runner HTML file you probably already know from your favourite testing framework.
So for testing purposes you can use pretty much anything you like. There are already plugins for most of the common testing frameworks:

* [Jasmine]
5 changes: 2 additions & 3 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -2,10 +2,9 @@ version: "{build}"

environment:
matrix:
- nodejs_version: "0.12"
- nodejs_version: "4"
- nodejs_version: "5"
- nodejs_version: "6"
- nodejs_version: "8"

matrix:
fast_finish: true
@@ -22,7 +21,7 @@ install:
- npm --version

# Install our package dependencies
- npm install
- appveyor-retry npm install

# Install our current directory as a dependency of itself
- npm run init:windows
87 changes: 74 additions & 13 deletions client/karma.js
Original file line number Diff line number Diff line change
@@ -49,12 +49,31 @@ var Karma = function (socket, iframe, opener, navigator, location) {
var childWindow = null
var navigateContextTo = function (url) {
if (self.config.useIframe === false) {
// If there is a window already open, then close it
// DEV: In some environments (e.g. Electron), we don't have setter access for location
if (childWindow !== null && childWindow.closed !== true) {
childWindow.close()
// run in new window
if (self.config.runInParent === false) {
// If there is a window already open, then close it
// DEV: In some environments (e.g. Electron), we don't have setter access for location
if (childWindow !== null && childWindow.closed !== true) {
childWindow.close()
}
childWindow = opener(url)
// run context on parent element and dynamically loading scripts
} else if (url !== 'about:blank') {
var loadScript = function (idx) {
if (idx < window.__karma__.scriptUrls.length) {
var ele = document.createElement('script')
ele.src = window.__karma__.scriptUrls[idx]
ele.onload = function () {
loadScript(idx + 1)
}
document.body.appendChild(ele)
} else {
window.__karma__.loaded()
}
}
loadScript(0)
}
childWindow = opener(url)
// run in iframe
} else {
iframe.src = url
}
@@ -85,31 +104,73 @@ var Karma = function (socket, iframe, opener, navigator, location) {
navigateContextTo('about:blank')
}

function getLocation (url, lineno, colno) {
var location = ''

if (url !== undefined) {
location += url
}

if (lineno !== undefined) {
location += ':' + lineno
}

if (colno !== undefined) {
location += ':' + colno
}

return location
}

// error during js file loading (most likely syntax error)
// we are not going to execute at all
this.error = function (msg, url, line) {
var message = msg
// we are not going to execute at all. `window.onerror` callback.
this.error = function (messageOrEvent, source, lineno, colno, error) {
var message = messageOrEvent
var location = getLocation(source, lineno, colno)

if (location !== '') {
message += '\nat ' + location
}

if (url) {
message = msg + '\nat ' + url + (line ? ':' + line : '')
if (error) {
message += '\n\n' + error.stack
}

// create an object with the string representation of the message to ensure all its content is properly
// transferred to the console log
message = {message: message, str: message.toString()}

socket.emit('karma_error', message)
this.complete()
return false
}

this.result = function (result) {
this.result = function (originalResult) {
var convertedResult = {}

// Convert all array-like objects to real arrays.
for (var propertyName in originalResult) {
if (originalResult.hasOwnProperty(propertyName)) {
var propertyValue = originalResult[propertyName]

if (Object.prototype.toString.call(propertyValue) === '[object Array]') {
convertedResult[propertyName] = Array.prototype.slice.call(propertyValue)
} else {
convertedResult[propertyName] = propertyValue
}
}
}

if (!startEmitted) {
socket.emit('start', {total: null})
startEmitted = true
}

if (resultsBufferLimit === 1) {
return socket.emit('result', result)
return socket.emit('result', convertedResult)
}

resultsBuffer.push(result)
resultsBuffer.push(convertedResult)

if (resultsBuffer.length === resultsBufferLimit) {
socket.emit('result', resultsBuffer)
Loading