Commit Graph

1427 Commits

Author SHA1 Message Date
Brian Mann a648ee4686 server, driver: fixes #886 redefine self + parent to prevent framebusting and clickjacking security measures (#1295)
* server, driver: fixes #886 redefine self + parent to prevent framebusting and clickjacking security measures

- add modifyObjectiveCode config, true by default

* driver: increase timeout for flaky test in CI

* server, driver: moved obstructive code rewriting to the proxy layer, out of JS, providing more comprehensive fix

* server, driver: fixes failing tests, make regexp much more conservative

* server: increase security specificity... down the rabbit hole we go
2018-02-12 01:01:00 -05:00
Brian Mann 386bed4480 driver: fixes #1156 ensure that spies and stubs and primitives retry when used as an alias (#1294) 2018-02-11 16:05:57 -05:00
Brian Mann b8c1dbc703 driver: increase timeout for flaky test in CI 2018-02-11 16:05:12 -05:00
Brian Mann a360ac098a server, driver: fixes #1292 relax domain parsing rules and fallback to naive segment parsing to fix local and localhost (#1293)
* server, driver: fixes #1292 relax domain parsing rules and fallback to naive segment parsing to fix local and localhost

* driver: simplify ip address regexp
2018-02-11 16:05:06 -05:00
Brian Mann f9e1687f5c driver: increase exec timeout to ensure profile can be read in 2018-02-11 12:10:59 -05:00
Brian Mann b48d29c07e electron: upgrade to 1.8.2, node 8.2.1, chromium 59 (#1275)
* electron: upgrade to 1.8.2, node 8.2.1, chromium 59

* server: update snapshots for node

* server: try to debug timeouts for mochawesome

* bump zunder

- node-sass 3.13.1 does not work with Node 8, since we’re upgrading the
project to node 8.2.1, we needed node-sass 4.5.3+. This node-sass dep
was coming from gulp-sass dep in zunder which has since been updated

* server: figured out that fixture scaffolding can cause timeouts

* bump zunder - get fix so that asserts are not prefixed with /

* server: use our own heroku example app

* use cypress/browsers:chrome64 docker image on Circle with Node 8

* update root folder name

* add hash to root cache

* disable permissions test, because cannot run as root

* server: only disable test in CI

* test new binary against other projects

* all: rename cypress-monorepo -> cypress

* scripts: use latest docker container

* server: don't skip as this messes up hooks which cause failures downstream

* driver: bump timeout for zonejs

* server: make tests pass for node 8.2.1 and 8.4.0
2018-02-10 22:08:56 -05:00
Brian Mann c56e35c818 server, driver: fixes #1288, handle basic auth at the network level, attach authorization headers to requests matching remote origin (#1290)
* server, driver: fixes #1288, handle basic auth at the network level, attach authorization headers to requests matching remote origin

* server, driver: fixes failing tests

* driver: fix tests, move around order of ops

* driver: try cypress promise

* server, driver: increase timeouts, don't disable background networking
2018-02-10 21:44:28 -05:00
Brian Mann 31f22c24b2 Issue 1155 (#1272)
* server: move hosts out of CLI args, keep as config only

* server, desktop-gui: fixes #1155 accept blacklistHosts from config CLI, display array on desktop gui settings

* server: pass args.config since its no longer flattened

* server: WIP trying to simplify config management

* server: fixes failing tests and circular refs

* server: fix failing tests with config hosts updates
2018-02-07 16:56:40 -05:00
Brian Mann 001a310b04 Issue 1159 (#1259)
* server: pass --cwd from CLI to use when resolving relative paths for various options

- remove unnecessary cwd manipulation in scripts/start

* server: fixes #1159, specs are normalized into an array resolved against cwd

- projectPath is now normalized against cwd as well

* server: move hosts out of CLI args, keep as config only

* server: convert spec array to string on module API

* cli: must ref root package directly

* server: fixes busted specs due to cherry pick

* server: temporary fix for specs being normalized into an array

* server: move around spec flattening earlier

* server: pass absolute path for specs

* server: revert flattening hosts into config temporarily

* server: add correct relative + absolute path to spec

* driver: normalize spec path against project

* driver: skip flaky test for now [skip ci]
2018-02-07 12:11:24 -05:00
Brian Mann e08778dd89 Issue 1175 (#1257)
* server: fixes #802 and fixes #380 and fixes #402 and fixes #493 and fixes #1161

- use the public suffix when parsing tld’s so that document.domain is
set correctly

* driver: move location spec back into cypress tests

* server, driver: fixes: #600 and fixes #1175 use public suffix for parsing tld, handle multiple different subdomains on cy.visit
2018-02-04 17:28:33 -05:00
Brian Mann aa667d5319 server: fixes #802 and fixes #380 and fixes #402 and fixes #493 and fixes #1161 (#1256)
- use the public suffix when parsing tld’s so that document.domain is
set correctly
2018-02-04 17:28:13 -05:00
Peter Hrynkow 893406f121 Allow .localhost tld to be parsed correctly (#1216)
* closes #451 - allow .localhost tld to be parsed correctly

* server: add unit + e2e tests for localhost, simplify regexp
2018-02-04 15:27:51 -05:00
Jacob Rothstein d462e0b83b return NODE_ENV to previous state after konfig() (#1224) close #1223
if the key previously did not exist, delete it
2018-01-25 09:25:05 -05:00
Gleb Bahmutov 11f1d1b6e3 Banner for server e2e tests (#1199)
* server: use terminal-banner in e2e tests

* add mocha-banner to integration tests

* different banner between e2e specs
2018-01-17 12:49:18 -05:00
Gleb Bahmutov 938190aaa5 linted example spec and include example plugins folder 2018-01-08 13:24:53 -05:00
Brian Mann edab5a452b driver: ufff move back e2e setup prior to all reporter tests 2018-01-07 11:27:01 -05:00
Brian Mann 81294562e3 server: fix snapshots, and don't print warnings when socket has been ended 2018-01-06 18:15:10 -05:00
Brian Mann d42be106ef server: derp .only 2018-01-06 17:36:04 -05:00
Brian Mann 0e539c0232 server: enable long stack traces, nest mocha awesome setup 2018-01-06 15:45:37 -05:00
Brian Mann f83c39dd3c Issue 551 1063 1141 (#1158)
* server: fixes #1141 use runner.failures and increment them ourselves

* server: opt, install to server node_modules and then copy into e2e

* server: fixes #1063 and #551, ensure hooks cause exit codes + mochawesome resports are generated

* server: reduce unnecessary async ops
2018-01-06 13:10:40 -05:00
Brian Mann 93317d5e1b server: fixes #1142 polyfill titlePath for reporters using peer dependencies of mocha >= 4 2018-01-05 17:40:05 -05:00
Brian Mann 3fce3b5dd8 server: use niv to handle multiple versions of node modules 2018-01-04 15:02:37 -05:00
Brian Mann 3dafede470 server: fixes #977, capture stdout in windows (#1129)
* server: fixes #977, capture stdout in windows

* driver: skip flaky tests for now

* root: fix breaking eslint due to 4.14.0

* cli: bump xvfb to make node4 happy

* cli: bump xvfb fix context
2017-12-24 21:49:00 -05:00
Brian Mann d54156e2f2 cli, fixes #921, #1113, #1126, #1127, make DEBUG logs work, show error when xvfb exits with status code 1, force tty in linux, handle colors in windows, enable logging cypress:xvfb stderr
* cli: fixes #838 start cypress in dev by routing through the CLI

- matches how we run in production better to keep parity and consistency

* cli: add coerceFalse for clarity

* cli: add global flag, update to work with windows

* server: bring into parity with root scripts

* cli: just execute start script directly to work with windows

* cli: if colors are supported then force them via env vars

- this fixes windows not displaying colors from electron because by
default isTTY is false (due to electron)

* cli: fixes #921 don't ignore stderr, inherit stdio on everything except when linux + xvfb

- filter out stderr messages coming from Xlib or libudev (from xvfb)

* cli, server: force stderr tty so that normalize tty behavior when piping

* server: drop in supports color so debug outputs more colors!

* server: remove empty line

* root: refer to cypress not monorepo

* cli: make util.supportsColor return boolean

* cl: add tests around spawn behavior with forcing colors, tty, and stdio configuration

* cli: handle xvfb onStderrData callback to output debug information

* cli: handle non zero exit code error from xvfb with special message
2017-12-24 19:03:57 -05:00
Brian Mann bc6d8f0a4d cli: fixes #838 start cypress in dev by routing through the CLI (#1106)
* cli: fixes #838 start cypress in dev by routing through the CLI

- matches how we run in production better to keep parity and consistency

* cli: add coerceFalse for clarity

* cli: add global flag, update to work with windows

* server: bring into parity with root scripts

* cli: just execute start script directly to work with windows

* cli, server: fixes failing tests
2017-12-24 15:05:29 -05:00
Jennifer Shehane 2435992328 example: bump kitchen-sink to 0.8.3 (cy.exec w/ platform updates) (#1095) 2017-12-19 13:40:55 -05:00
Brian Mann 88c367ff13 server: fixes #1093, ensure github login works (#1094)
* server: fixes #1093, ensure github login works

- add more comprehensive tests around windows and events
- test that github callbacks work as expected

* server: fixes failing tests

* server: fixes failing tests, more resets
2017-12-19 12:54:35 -05:00
Marcelo Emanoel Bezerra Diniz f0d67572ea Add a local filter for specs by displayName (#1033)
* Add a local search for specs by displayName

* Fix filter spec tests

* fix update banner spec

* styling updates to searchbar

- make background of search bar grey
- fix issue where outline was being cut off
- more visually vertically center the search icon
- update style of ‘run all tests’ button to look like btn instead of
link
- fix styles of searchbar so that it is not fixed at top (removes needs
to click({force: true})
- cleaned up a few cy chains in tests.

* Update search area to be less prominent.

- Change ‘search here’ to ‘search…’
- Made search bar smaller
- made search bar same bg color as header
- underline on focus
2017-12-19 12:44:40 -05:00
Chris Breiding 874ae86bec Fix selector playground styles in electron (#1088)
* runner: append selector playground styles instead of using a link tag

* runner: rename selector helper to selector playground

* runner: bump react-tooltip version
2017-12-19 10:41:11 -05:00
Brian Mann 191dbfb354 server: fixes #691, add event for exposing browser launch args (#1078)
* server: fixes #691, add event for exposing browser launch args

- enable special handling of ‘—load-extension’
- add e2e / integration / unit tests
- handle both chrome + electron cases

* server: iterate on failing tests, don't strip electron options else we lose valuable properties

- add better debugging

* server: fix failing tests, browsers needed

* server: send in a complete browser object for 'before:browser:launch'

- useful for doing conditional things with version and/or path
2017-12-17 16:57:26 -05:00
Chris Breiding d406018fea Add selector playground to runner (#1079)
* runner: display css selector helper and highlight on hover

* runner: use unique-selector lib

* runner: eslint auto-fixes

* upgrade zunder to 5.5.1 and update configs

* reporter: add babel deps

* runner/reporter: lock react to 15.6.2

* runner: add highlight w/ tooltip and copy-to-clipboard

* runner/reporter: upgrade react-tooltip to 0.3.1

* server: upgrade browserify-preprocessor to 1.0.2

* cli: eslint auto-fixes

* upgrade zunder to 5.5.2

* runner: add defensive style resets to selector helper highlight

* runner: ensure iframe contents exist before acting on them

* runner: hide selector helper button when tests are loading or running

* runner: use shadow dom for selector helper highlight

* runner: reset state when selector helper is disabled

* runner: rebind selector helper when snapshot changes

* runner: don’t show tooltip when hovering over selector

* runner: integrate playground input into selector helper

* runner: fix mouseover/mouseout for selector

* runner: fix selector clearing

* runner: allow selector area to scroll

* runner: enable switching between get and contains

* runner: refactor method

* runner: add tooltip to selector helper toggle

* runner: focus selector helper input when method changes

* runner: remove references to cypressEnv

* runner: keep selector even if snapshot changes

* runner: persist selector helper state instead of clearing it when things change

* runner: hide method picker when clicking outside of it

* runner: pass model into selector helper

* CSS style changes to selector helper

- merge in changes + fix conflicts

* update close icon to not be so bold

* runner: keep selector helper styles out of main runner styles

* runner: rename playgroundInfo to info

* runner: simplify selector helper model

* driver: restrict more nodes from contains selector

* runner: cleanup

* runner: move selector helper to top

* more style updates for selector-helper

* move arrow to left of cy.

* Added a 'print to console' button

* runner: use fork of unique-selector and accept attribute selectors

* runner: implement print to console

* runner: close selector helper when re-running tests

* runner: improve header responsive design

* reporter: shorten console print message and lengthen duration shown

* more styling for css selector panel.

* style changes off of conversation

* updated main dropdown button

* update colors of input on invalid / no elements to be red

* disable copy to clipboard & print to console buttons if invalid / no elements

* style disabled clipboard & print buttons

* update tooltip on click of 'print to console' to say 'printed!'

* runner: refactor header to use mobx state

* add link to docs help to selector playground

* runner: add tests for header

* runner: use the right button

* runner: add tests for selector helper

* runner: remove unused variable

* runner: focus and select input when selector helper enabled or method changed

* runner: hide tooltip when selector helper is open

* runner: keep highlight from playground unless hovering over aut

* runner: always show selector helper info

* runner: show highlight when hovering over info

* Update SelectorHelper name from old Footer

* move 'selector highlight' behavior into 'highlight button'

* Added tooltip to 'highlight' button.

* runner: some style changes to selector-helper

* runner: do not focus and select input when 'turning off inspect mode'

* runner: fix issue w/ 'close' button on helper not working.

* runner: use Cypress methods for printing elements to console. bring console messages into parity with driver

* driver: revert experimental change to contains

* reporter: fix failing tests

* runner: fix failing tests
2017-12-17 14:17:19 -05:00
Brian Mann 1fbfcd6087 Issue 442 - blacklisting hosts with config.json (#1062)
* erver: fixes #442 implements blacklisting hosts with config

* server: add validation rules for blacklistHosts

* server: fix bad cherrypick / merge for WIP feature

* server: enable passing exit false to prevent browser teardown on completed runs

* server: add e2e tests for blacklists, fix edge case where blacklisted localhost was causing ws connection issues

* server: add snapshot for blacklist e2e test
2017-12-14 21:38:57 -05:00
Brian Mann 26873b60f2 server: add validation rules for userAgent 2017-12-13 00:17:18 -05:00
Brian Mann 9ab2855337 fixes #364 enable user agent to be changed in cypress.json (#1060)
* fixes #364 enable user agent to be changed in cypress.json

* server: fixes failing tests
2017-12-12 19:35:27 -05:00
Brian Mann c1bcb2f641 Issue 1042 (#1057)
* server: remove unused file

* server: WIP, start implementing accepting plugin returning promise and yielding config overrides [skip ci]

* server: cleanup the env + environentVariables disaster. simplify and only use 'env'

* server, desktop-gum: rename 'env' to 'cypressEnv' to avoid conflicts, fix failing tests

* server: modify plugins error content to be clearer

* runner, driver: more environmentVariables -> env cleanup

* fixes #509 return the complete configuration object to Cypress.config()

* fixes #1042 enable plugins to return a promise and modify config

* desktop-gui: add 'plugin' override to configuration display

* server: bug fix when plugin cause a project not to open

* desktop-gui: fix for failing e2e test

* server: make errors clearer when plugins crash

* server: fix bug with PLUGINS_FUNCTION_ERROR not sending right arguments

- fix failing tests
- improve plugin error content

* server: fix failing snapshots, preprocessor is invoked for support + spec files

* server: fix tests, don't watch the support file initially

- this was causing a problem where unhandled preprocessor errors were
causing the entire process to hang.
- this was happening because we weren’t properly running support files
through a custom preprocessor initially

* fixes failing tests
2017-12-11 20:53:23 -05:00
Graham McGregor 4d41d3d641 De-emphasize a word in error message (#1038)
This is to change the tone/inflection of the message. The previous
message felt like it was bordering on aggressive.
2017-12-07 17:10:16 -05:00
Jennifer Shehane 1aef239974 Add image of desktop | few minor edits [skip ci] 2017-12-07 11:16:10 -05:00
Jennifer Shehane d29493d686 Include better testing instructions. [skip ci] 2017-12-07 11:11:35 -05:00
Brian Mann 2e9fe69e30 Issue 1020 1021 (#1028)
* release 1.0.3 [skip ci]

* use chrome62 docker image

* server: fixes #1020 and #1021 - disable gnu and add no sandbox when in linux and launching chrome
2017-12-06 20:46:30 -05:00
Chris Breiding f786bcf6c0 server: upgrade browserify-preprocessor to 1.0.2 (#1019) 2017-12-06 16:50:40 -05:00
Gleb Bahmutov d3ab6a83a5 Remove browser aliases 1023 (#1024)
* launcher: remove aliases, close #1023

* upgrade tslint / typescript and fix types
2017-12-06 16:26:44 -05:00
Brian Mann dc37dff548 server: (WIP) properly pass in browserName + version to API when creating instances (#1000)
* server: (WIP) properly pass in browserName + version to API when creating instances

* server: fixes #854 and failing tests

* server: fix using wrong property on found browser
2017-12-04 00:43:44 -05:00
Brian Mann a25b828675 driver: provide additional context when uncaught errors originate either from spec code or app code (#999)
* driver: provide additional context when uncaught errors originate either from spec code or app code

* server: fix failing snapshots for uncaught exceptions in spec + test code
2017-12-04 00:01:14 -05:00
Jamie 875e378930 feature: Update cy.visit to allow for visiting non-2xx response pages when option set (#982)
* Update requestUrl method to accept options param

* Update requestUrl to only throw error when failOnStatusCode option is true

* Set the default option value for failOnStatusCode to true

* Pass options to requestUrl call

* Update _onResolveUrl to take an options param

* Update _onResolveUrl to set domain for invalid status codes when visitable

* Update socket delegator to pass options arg to onResolveUrl

* Add server test case for new functionality around resolving non-2xx responses

* Add new driver test routes

* Add driver pkg test case for visiting non-2xx pages

* Add error test for edge case when non-2xx and non html response

* driver: normalize error messages by reducing 2 or more new lines into only 2 new lines

* driver: make test server routes clearer, remove unused route

* driver: simplify accepting bad status codes logic

- keep the isOkStatusCode logic in the server only, instead of also
putting it in the driver
- update the tests accordingly
- remove test that was unnecessary

* driver: add error message for explaining how to test bad status codes

* server: fix failing snapshot tests due to error message changes new line normalization
2017-12-03 17:10:49 -05:00
Brian Mann 8033fbf819 Issue 995 (#996)
* better explain contributing to the driver

- update npm tasks to reflect newest conventions

* better explain contributing to the desktop-gui

- update npm tasks to reflect newest conventions

* synchronize content changes

* capitalize all package readme's for consistency

* better explain contributing to the runner, synchronize content changes

* better explain contributing to the server

* synchronize content

* synchronize content

* synchronize content

* synchronize content

* synchronize content

* synchronize content

* better contribution guidelines by redirecting users to package specific readme's

* synchronize content

* fix various content mistakes

* simplify contributing

* removed dead files

* bump zunder

* lock zunder to 5.1.0
2017-12-02 18:51:42 -05:00
Gleb Bahmutov 8e21f87526 Add platform arch 824 (#986)
* add platform and arch to configuration object for #824

* pass platform and arch from config

* test Cypress.platform and Cypress.arch

* add TypeScript definitions for platform and arch
2017-11-30 15:30:18 -05:00
Gleb Bahmutov f8d8670763 server: parse JSON with unicode escape, close #964 (#965) 2017-11-29 16:21:20 -05:00
Chris Breiding 915264f834 Fix firing 'watched:file:changed' twice on change (#975)
* server: upgrade browserify preprocessor to 1.0.1

* server: rename preprocessor config to file object

* server: normalize path when removing preprocessor file

* server: only add one listener for file:updated in socket

previously, a listener would be added for every spec file opened, linearly increasing how many watched:file:changed events would be fired when a single file changed
2017-11-29 13:33:12 -05:00
Csaba Palfi d2a1705390 Issue 962 - Skip invalid cookies instead of crashing (#963)
* skip invalid cookies instead of crashing

* driver: ignore invalid cookies, add test
2017-11-27 17:45:22 -05:00
Brian Mann 6af8557e4b fixes #955, take into account special characters, and continue to fire all applicable events (#961)
* fixes #955, take into account special characters, and continue to fire all applicable events

* driver: remove only fml
2017-11-26 20:25:33 -05:00