{"action":"created","comment":{"url":"https://api.github.com/repos/craftyjs/Crafty/pulls/comments/34827481","id":34827481,"diff_hunk":"@@ -143,15 +147,113 @@ module.exports = function (grunt) {\n             }\n         },\n \n-        jsvalidate: {\n-            files: ['crafty.js', 'tests/**/*.js']\n+        'saucelabs-qunit': {\n+            all: {\n+                options: {\n+                    urls: [ 'http://localhost:8000/tests/index.html' ],\n+                    browsers: [ // see http://kangax.github.io/compat-table/es5/\n+                        /*\n+                         * OLDEST COMPATIBLE BROWSERS\n+                         */\n+                        // WINDOWS\n+                        {\n+                            browserName: 'internet explorer',\n+                            version: '9.0',\n+                            platform: 'Windows 7'\n+                        }, {\n+                            browserName: 'firefox',\n+                            version: '4.0',\n+                            platform: 'Windows XP'\n+                        }, {\n+                            browserName: 'chrome',\n+                            version: '26.0',\n+                            platform: 'Windows XP'\n+                        }, {\n+                            browserName: 'opera',\n+                            version: '12.12',\n+                            platform: 'Windows XP'\n+                        }, {\n+                            browserName: 'safari',\n+                            version: '5.1',\n+                            platform: 'Windows 7'\n+                        },\n+\n+                        // MAC\n+                        {\n+                            browserName: 'firefox',\n+                            version: '4.0',\n+                            platform: 'OS X 10.6'\n+                        }, {\n+                            browserName: 'chrome',\n+                            version: '27.0',\n+                            platform: 'OS X 10.6'\n+                        }, {\n+                            browserName: 'safari',\n+                            version: '5.1',\n+                            platform: 'OS X 10.6'\n+                        },\n+\n+                        // LINUX\n+                        {\n+                            browserName: 'firefox',\n+                            version: '4.0',\n+                            platform: 'Linux'\n+                        }, {\n+                            browserName: 'chrome',\n+                            version: '26.0',\n+                            platform: 'Linux'\n+                        }, {\n+                            browserName: 'opera',\n+                            version: '12.15',\n+                            platform: 'Linux'\n+                        }\n+\n+                        /*\n+                        // Android\n+                        ,{\n+                            browserName: 'android',\n+                            version: '4.1',\n+                            deviceName: 'Android Emulator',\n+                            platform: 'Linux'\n+                        },\n+                        // PocketMAC\n+                        {\n+                            browserName: 'iphone',\n+                            version: '7.0',\n+                            deviceName: 'iPhone Simulator',\n+                            platform: 'OS X 10.10'\n+                        }, {\n+                            browserName: 'iphone',\n+                            version: '7.0',\n+                            deviceName: 'iPad Simulator',\n+                            platform: 'OS X 10.10'\n+                        }\n+                        */\n+                    ],\n+                    testname: \"Sauce Labs Test for CraftyJS\",\n+                    build: process.env.TRAVIS_BUILD_NUMBER,\n+                    tags: [ process.env.TRAVIS_BRANCH ],\n+                    sauceConfig: {\n+                        \"recordVideo\": false,\n+                        \"recordScreenshots\": false,\n+                        \"disablePopupHandler\": true\n+                    },\n+                    throttled: 2,","path":"Gruntfile.js","position":108,"original_position":108,"commit_id":"b375c0384e70f8e700153c9a407e87340a3c3a07","original_commit_id":"b375c0384e70f8e700153c9a407e87340a3c3a07","user":{"login":"mucaho","id":3935691,"avatar_url":"https://avatars.githubusercontent.com/u/3935691?v=3","gravatar_id":"","url":"https://api.github.com/users/mucaho","html_url":"https://github.com/mucaho","followers_url":"https://api.github.com/users/mucaho/followers","following_url":"https://api.github.com/users/mucaho/following{/other_user}","gists_url":"https://api.github.com/users/mucaho/gists{/gist_id}","starred_url":"https://api.github.com/users/mucaho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mucaho/subscriptions","organizations_url":"https://api.github.com/users/mucaho/orgs","repos_url":"https://api.github.com/users/mucaho/repos","events_url":"https://api.github.com/users/mucaho/events{/privacy}","received_events_url":"https://api.github.com/users/mucaho/received_events","type":"User","site_admin":false},"body":"After you create your open sauce account, check on the main page on the left how many parallel tests you can have running (I can only have 2 because of my limited account) -> change this number to reflect the max amount of parallel tests","created_at":"2015-07-16T19:23:55Z","updated_at":"2015-07-16T19:23:55Z","html_url":"https://github.com/craftyjs/Crafty/pull/927#discussion_r34827481","pull_request_url":"https://api.github.com/repos/craftyjs/Crafty/pulls/927","_links":{"self":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/comments/34827481"},"html":{"href":"https://github.com/craftyjs/Crafty/pull/927#discussion_r34827481"},"pull_request":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/927"}}},"pull_request":{"url":"https://api.github.com/repos/craftyjs/Crafty/pulls/927","id":40165571,"html_url":"https://github.com/craftyjs/Crafty/pull/927","diff_url":"https://github.com/craftyjs/Crafty/pull/927.diff","patch_url":"https://github.com/craftyjs/Crafty/pull/927.patch","issue_url":"https://api.github.com/repos/craftyjs/Crafty/issues/927","number":927,"state":"open","locked":false,"title":"Add open sauce tests","user":{"login":"mucaho","id":3935691,"avatar_url":"https://avatars.githubusercontent.com/u/3935691?v=3","gravatar_id":"","url":"https://api.github.com/users/mucaho","html_url":"https://github.com/mucaho","followers_url":"https://api.github.com/users/mucaho/followers","following_url":"https://api.github.com/users/mucaho/following{/other_user}","gists_url":"https://api.github.com/users/mucaho/gists{/gist_id}","starred_url":"https://api.github.com/users/mucaho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mucaho/subscriptions","organizations_url":"https://api.github.com/users/mucaho/orgs","repos_url":"https://api.github.com/users/mucaho/repos","events_url":"https://api.github.com/users/mucaho/events{/privacy}","received_events_url":"https://api.github.com/users/mucaho/received_events","type":"User","site_admin":false},"body":"Solves cross-browser compatibility tests as described in #581 .\r\n* Every time one of the branches of this original repository gets updated, the travis build is augmented with cross-browser compatibility tests. The cross-browser compatibility tests are **not** run when someone submits a pull request, unless the contributor also has an open sauce account (this is a known limitation I haven't found a fix for unfortunately)\r\n* I included the minimal supported versions for now (to the best of my knowledge)\r\n   * Firefox 4 for all available platforms\r\n   * Opera 12 for all available platforms\r\n   * Chrome 26 (unfortunately the test suite doesn't support prior versions) for all available platforms\r\n   * Safari 5.1 for all available platforms\r\n* I haven't included Android nor iOS browser tests for now, since the tests sometimes take too long\r\n* Even if tests fail in some browsers, the Travis build passes for now. We can change this once we resolve the issues (see #926)\r\n\r\n@starwed If we agree on using this, then:\r\n* you or another owner needs to create a free Sauce Labs account (it's called [OpenSauce](https://saucelabs.com/opensauce/))\r\n* after that you can encrypt your OpenSause username and password and put it in the `travis.yml` file\r\n* from now on all changes on repo branches should be tested for cross-browser compatibility","created_at":"2015-07-16T19:21:53Z","updated_at":"2015-07-16T19:23:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a623da4e07e93e81e536e4fcd6b8dc4cd8c043fa","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/craftyjs/Crafty/pulls/927/commits","review_comments_url":"https://api.github.com/repos/craftyjs/Crafty/pulls/927/comments","review_comment_url":"https://api.github.com/repos/craftyjs/Crafty/pulls/comments{/number}","comments_url":"https://api.github.com/repos/craftyjs/Crafty/issues/927/comments","statuses_url":"https://api.github.com/repos/craftyjs/Crafty/statuses/b375c0384e70f8e700153c9a407e87340a3c3a07","head":{"label":"mucaho:open_sauce","ref":"open_sauce","sha":"b375c0384e70f8e700153c9a407e87340a3c3a07","user":{"login":"mucaho","id":3935691,"avatar_url":"https://avatars.githubusercontent.com/u/3935691?v=3","gravatar_id":"","url":"https://api.github.com/users/mucaho","html_url":"https://github.com/mucaho","followers_url":"https://api.github.com/users/mucaho/followers","following_url":"https://api.github.com/users/mucaho/following{/other_user}","gists_url":"https://api.github.com/users/mucaho/gists{/gist_id}","starred_url":"https://api.github.com/users/mucaho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mucaho/subscriptions","organizations_url":"https://api.github.com/users/mucaho/orgs","repos_url":"https://api.github.com/users/mucaho/repos","events_url":"https://api.github.com/users/mucaho/events{/privacy}","received_events_url":"https://api.github.com/users/mucaho/received_events","type":"User","site_admin":false},"repo":{"id":14079672,"name":"Crafty","full_name":"mucaho/Crafty","owner":{"login":"mucaho","id":3935691,"avatar_url":"https://avatars.githubusercontent.com/u/3935691?v=3","gravatar_id":"","url":"https://api.github.com/users/mucaho","html_url":"https://github.com/mucaho","followers_url":"https://api.github.com/users/mucaho/followers","following_url":"https://api.github.com/users/mucaho/following{/other_user}","gists_url":"https://api.github.com/users/mucaho/gists{/gist_id}","starred_url":"https://api.github.com/users/mucaho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mucaho/subscriptions","organizations_url":"https://api.github.com/users/mucaho/orgs","repos_url":"https://api.github.com/users/mucaho/repos","events_url":"https://api.github.com/users/mucaho/events{/privacy}","received_events_url":"https://api.github.com/users/mucaho/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mucaho/Crafty","description":"JavaScript Game Engine","fork":true,"url":"https://api.github.com/repos/mucaho/Crafty","forks_url":"https://api.github.com/repos/mucaho/Crafty/forks","keys_url":"https://api.github.com/repos/mucaho/Crafty/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mucaho/Crafty/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mucaho/Crafty/teams","hooks_url":"https://api.github.com/repos/mucaho/Crafty/hooks","issue_events_url":"https://api.github.com/repos/mucaho/Crafty/issues/events{/number}","events_url":"https://api.github.com/repos/mucaho/Crafty/events","assignees_url":"https://api.github.com/repos/mucaho/Crafty/assignees{/user}","branches_url":"https://api.github.com/repos/mucaho/Crafty/branches{/branch}","tags_url":"https://api.github.com/repos/mucaho/Crafty/tags","blobs_url":"https://api.github.com/repos/mucaho/Crafty/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mucaho/Crafty/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mucaho/Crafty/git/refs{/sha}","trees_url":"https://api.github.com/repos/mucaho/Crafty/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mucaho/Crafty/statuses/{sha}","languages_url":"https://api.github.com/repos/mucaho/Crafty/languages","stargazers_url":"https://api.github.com/repos/mucaho/Crafty/stargazers","contributors_url":"https://api.github.com/repos/mucaho/Crafty/contributors","subscribers_url":"https://api.github.com/repos/mucaho/Crafty/subscribers","subscription_url":"https://api.github.com/repos/mucaho/Crafty/subscription","commits_url":"https://api.github.com/repos/mucaho/Crafty/commits{/sha}","git_commits_url":"https://api.github.com/repos/mucaho/Crafty/git/commits{/sha}","comments_url":"https://api.github.com/repos/mucaho/Crafty/comments{/number}","issue_comment_url":"https://api.github.com/repos/mucaho/Crafty/issues/comments{/number}","contents_url":"https://api.github.com/repos/mucaho/Crafty/contents/{+path}","compare_url":"https://api.github.com/repos/mucaho/Crafty/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mucaho/Crafty/merges","archive_url":"https://api.github.com/repos/mucaho/Crafty/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mucaho/Crafty/downloads","issues_url":"https://api.github.com/repos/mucaho/Crafty/issues{/number}","pulls_url":"https://api.github.com/repos/mucaho/Crafty/pulls{/number}","milestones_url":"https://api.github.com/repos/mucaho/Crafty/milestones{/number}","notifications_url":"https://api.github.com/repos/mucaho/Crafty/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mucaho/Crafty/labels{/name}","releases_url":"https://api.github.com/repos/mucaho/Crafty/releases{/id}","created_at":"2013-11-03T03:38:07Z","updated_at":"2015-07-16T11:53:22Z","pushed_at":"2015-07-16T19:00:59Z","git_url":"git://github.com/mucaho/Crafty.git","ssh_url":"git@github.com:mucaho/Crafty.git","clone_url":"https://github.com/mucaho/Crafty.git","svn_url":"https://github.com/mucaho/Crafty","homepage":"http://craftyjs.com","size":7127,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"craftyjs:develop","ref":"develop","sha":"0974958727d6f7d256406c81effffecdd0c69ed6","user":{"login":"craftyjs","id":1334729,"avatar_url":"https://avatars.githubusercontent.com/u/1334729?v=3","gravatar_id":"","url":"https://api.github.com/users/craftyjs","html_url":"https://github.com/craftyjs","followers_url":"https://api.github.com/users/craftyjs/followers","following_url":"https://api.github.com/users/craftyjs/following{/other_user}","gists_url":"https://api.github.com/users/craftyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/craftyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craftyjs/subscriptions","organizations_url":"https://api.github.com/users/craftyjs/orgs","repos_url":"https://api.github.com/users/craftyjs/repos","events_url":"https://api.github.com/users/craftyjs/events{/privacy}","received_events_url":"https://api.github.com/users/craftyjs/received_events","type":"Organization","site_admin":false},"repo":{"id":1052675,"name":"Crafty","full_name":"craftyjs/Crafty","owner":{"login":"craftyjs","id":1334729,"avatar_url":"https://avatars.githubusercontent.com/u/1334729?v=3","gravatar_id":"","url":"https://api.github.com/users/craftyjs","html_url":"https://github.com/craftyjs","followers_url":"https://api.github.com/users/craftyjs/followers","following_url":"https://api.github.com/users/craftyjs/following{/other_user}","gists_url":"https://api.github.com/users/craftyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/craftyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craftyjs/subscriptions","organizations_url":"https://api.github.com/users/craftyjs/orgs","repos_url":"https://api.github.com/users/craftyjs/repos","events_url":"https://api.github.com/users/craftyjs/events{/privacy}","received_events_url":"https://api.github.com/users/craftyjs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/craftyjs/Crafty","description":"JavaScript Game Engine","fork":false,"url":"https://api.github.com/repos/craftyjs/Crafty","forks_url":"https://api.github.com/repos/craftyjs/Crafty/forks","keys_url":"https://api.github.com/repos/craftyjs/Crafty/keys{/key_id}","collaborators_url":"https://api.github.com/repos/craftyjs/Crafty/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/craftyjs/Crafty/teams","hooks_url":"https://api.github.com/repos/craftyjs/Crafty/hooks","issue_events_url":"https://api.github.com/repos/craftyjs/Crafty/issues/events{/number}","events_url":"https://api.github.com/repos/craftyjs/Crafty/events","assignees_url":"https://api.github.com/repos/craftyjs/Crafty/assignees{/user}","branches_url":"https://api.github.com/repos/craftyjs/Crafty/branches{/branch}","tags_url":"https://api.github.com/repos/craftyjs/Crafty/tags","blobs_url":"https://api.github.com/repos/craftyjs/Crafty/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/craftyjs/Crafty/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/craftyjs/Crafty/git/refs{/sha}","trees_url":"https://api.github.com/repos/craftyjs/Crafty/git/trees{/sha}","statuses_url":"https://api.github.com/repos/craftyjs/Crafty/statuses/{sha}","languages_url":"https://api.github.com/repos/craftyjs/Crafty/languages","stargazers_url":"https://api.github.com/repos/craftyjs/Crafty/stargazers","contributors_url":"https://api.github.com/repos/craftyjs/Crafty/contributors","subscribers_url":"https://api.github.com/repos/craftyjs/Crafty/subscribers","subscription_url":"https://api.github.com/repos/craftyjs/Crafty/subscription","commits_url":"https://api.github.com/repos/craftyjs/Crafty/commits{/sha}","git_commits_url":"https://api.github.com/repos/craftyjs/Crafty/git/commits{/sha}","comments_url":"https://api.github.com/repos/craftyjs/Crafty/comments{/number}","issue_comment_url":"https://api.github.com/repos/craftyjs/Crafty/issues/comments{/number}","contents_url":"https://api.github.com/repos/craftyjs/Crafty/contents/{+path}","compare_url":"https://api.github.com/repos/craftyjs/Crafty/compare/{base}...{head}","merges_url":"https://api.github.com/repos/craftyjs/Crafty/merges","archive_url":"https://api.github.com/repos/craftyjs/Crafty/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/craftyjs/Crafty/downloads","issues_url":"https://api.github.com/repos/craftyjs/Crafty/issues{/number}","pulls_url":"https://api.github.com/repos/craftyjs/Crafty/pulls{/number}","milestones_url":"https://api.github.com/repos/craftyjs/Crafty/milestones{/number}","notifications_url":"https://api.github.com/repos/craftyjs/Crafty/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/craftyjs/Crafty/labels{/name}","releases_url":"https://api.github.com/repos/craftyjs/Crafty/releases{/id}","created_at":"2010-11-04T23:02:09Z","updated_at":"2015-07-16T06:35:24Z","pushed_at":"2015-07-16T19:21:55Z","git_url":"git://github.com/craftyjs/Crafty.git","ssh_url":"git@github.com:craftyjs/Crafty.git","clone_url":"https://github.com/craftyjs/Crafty.git","svn_url":"https://github.com/craftyjs/Crafty","homepage":"http://craftyjs.com","size":10624,"stargazers_count":1822,"watchers_count":1822,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":447,"mirror_url":null,"open_issues_count":44,"forks":447,"open_issues":44,"watchers":1822,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/927"},"html":{"href":"https://github.com/craftyjs/Crafty/pull/927"},"issue":{"href":"https://api.github.com/repos/craftyjs/Crafty/issues/927"},"comments":{"href":"https://api.github.com/repos/craftyjs/Crafty/issues/927/comments"},"review_comments":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/927/comments"},"review_comment":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/craftyjs/Crafty/pulls/927/commits"},"statuses":{"href":"https://api.github.com/repos/craftyjs/Crafty/statuses/b375c0384e70f8e700153c9a407e87340a3c3a07"}}}}