Skip to content
This repository has been archived by the owner on Apr 3, 2019. It is now read-only.

Mocha tests also fail in IE 10 & 11 #1334

Closed
karlht opened this issue Jun 27, 2014 · 14 comments
Closed

Mocha tests also fail in IE 10 & 11 #1334

karlht opened this issue Jun 27, 2014 · 14 comments
Assignees
Labels

Comments

@karlht
Copy link

karlht commented Jun 27, 2014

Doing this via Sauce rather than a local install; this makes getting details of the failures extremely difficult.

But looking at the videos for https://saucelabs.com/tests/54c3deaf0b61497fba2219036e6bc811 (IE 11) and https://saucelabs.com/tests/df503cb6c13e47a0b427e1d262ae5e5e (IE 10) shows the number of failures as non-zero.

Any help from Intern experts on how to dig in to get more details here would be greatly appreciated.

@vladikoff
Copy link
Contributor

Hey Karl,

I do not have access to that Sauce account to check the videos. It might actually help to get the log of what happened when you run these tests. We landed a reporter update today in f8a6d58
which provides a more detailed log.

We will be updating to Intern 2 in the next few days, which now ships with a better WebDriver library that will help us debug these things.

@karlht
Copy link
Author

karlht commented Jun 28, 2014

Yeah, I saw the reporter land and updated. Would you like the console reporter log by email, attachment, carrier pigeon?

@vladikoff
Copy link
Contributor

@karlht paste here using the code tag or email :)

@karlht
Copy link
Author

karlht commented Jun 28, 2014

[0] 16:54 (ttys005) kthiessen@kthiessen-16107:~/Library/github/mozilla/fxa-content-server 671$ node ./node_modules/.bin/intern-runner config=tests/intern_sauce
Listening on 0.0.0.0:9090
Opening local tunnel using Sauce Connect
Starting sc with args: -u XXXXXXXX -k XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX -P 4445 --tunnel-identifier 1403913348593 --readyfile /var/folders/tr/zhjwv42949g6vnw9p1bgw73w0000gp/T/sc-launcher-readyfile
Creating tunnel with Sauce Labs
Detected sc ready
Testing tunnel ready
group: main
group: main
0/0 tests passed
groupEnd: main
group: mocha tests
passes: 382failures: 2duration: 96.77s
lib/channel/web
send
is a standin that does nothing
‣
lib/channel/fx-desktop
init
sends the user to the settings page if signed in
‣
sends the user to the signup page if not signed in
‣
does not redirect the user if a route is present in the path
‣
send
sends a message to the browser
‣
times out if browser does not respond67ms
‣
does not except on timeout if callback is not given501ms
‣
on
registers a callback to be called when the browser sends the registered message
‣
lib/xss
href
allows http href
‣
allows https href
‣
allows href with query parameters
‣
allows but escapes URLs that try to break out
‣
disallows javascript: href
‣
disallows href without a scheme
‣
disallows relative scheme
‣
disallows data URI scheme
‣
only allows strings
‣
allows hrefs of the max length
‣
disallowed hrefs that are too long
‣
lib/url
searchParam
returns a parameter from window.location.serach, if it exists
‣
returns undefined if parameter does not exist
‣
does not throw if str override is not specified
‣
pathToScreenName
strips leading /
‣
strips trailing /
‣
leaves middle / alone
‣
strips search parameters
‣
lib/session
set
can take a key value pair
‣
can take an object
‣
will not overwrite items in Session.prototype
‣
clear
with a key clears item
‣
with no key clears all items
‣
will not clear items in Session.prototype
‣
will not clear items in DO_NOT_CLEAR
‣
persist
will persist keys in PERSIST_TO_LOCAL_STORAGE to localStorage
‣
load
loads data from sessionStorage
‣
does not load up items in DO_NOT_PERSIST
‣
lib/fxa-client
signUp/signUpResend
signUp signs up a user with email/password566ms
‣
a throttled signUp returns a THROTTLED error
‣
informs browser of customizeSync option506ms
‣
signUpResend resends the validation email1377ms
‣
signUpResend still shows success after max tries313ms
‣
signUp existing verified user returns ACCOUNT_ALREADY_EXISTS error1427ms
‣
signUp existing unverified user with different password signs user up again1285ms
‣
signUp when another user has previously signed in to browser and user accepts
sends verifiedCanLinkAccount along with the login message317ms
‣
signUp when another user has previously signed in to browser and user rejects
throws a USER_CANCELED_LOGIN error
‣
signIn
signin with unknown user should call errorback213ms
‣
signs a user in with email/password1530ms
‣
informs browser of customizeSync option427ms
‣
signIn with verifiedCanLinkAccount=true option
sends verifiedCanLinkAccount along with the login message1046ms
‣
signIn when another user has previously signed in to browser and user accepts
sends verifiedCanLinkAccount along with the login message309ms
‣
signIn when another user has previously signed in to browser and user rejects
throws a USER_CANCELED_LOGIN error
‣
passwordReset/passwordResetResend
requests a password reset1545ms
‣
passwordResetResend still shows success after max tries741ms
‣
signOut
signs the user out960ms
‣
resolves to success on XHR failure746ms
‣
checkPassword
returns error if password is incorrect308ms
‣
succeeds if password is correct535ms
‣
changePassword
changes the user's password1824ms
‣
isPasswordResetComplete
password status incomplete4141ms
‣
deleteAccount
deletes the user's account1830ms
‣
sessionStatus
checks sessionStatus744ms
‣
certificateSign
signs certificate722ms
‣
isSignedIn
resolves to false if no sessionToken passed in
‣
resolves to false if invalid sessionToken passed in356ms
‣
resolves to true with a valid sessionToken350ms
‣
lib/oauth-client
oauth-client
calls getCode
‣
calls getClientInfo
‣
lib/assertion
validate
generates a valid assertion
‣
Error: timeout of 20000ms exceeded
lib/translator
fetch
fetches translations from the server95ms
‣
fails gracefully when receiving a 404196ms
‣
get
returns translated string when it exists
‣
returns untranslated string when translation does not exist
‣
can do string interpolation on unnamed `%s` when given array context
‣
can do string interpolation on named `%(name)s` when given array context
‣
can do interpolation multiple times with an array
‣
can do interpolation multiple times with an object
‣
does no replacement on %s and %(name)s if not in context
‣
leaves remaining %s if not enough items in context
‣
lib/router
navigate
Tells the router to navigate to a page
‣
preserves window search parameters across screen transition
‣
redirectToSignupOrSettings
replaces current page with the signup page if there is no sessionToken
‣
replaces the current page with the settings page if there is a sessionToken
‣
showView, then another showView
shows a view, then shows the new view51ms
‣
lib/strings
interpolate
can do string interpolation on unnamed `%s` when given array context
‣
can do string interpolation on named `%(name)s` when given array context
‣
can do interpolation multiple times with an array
‣
can do interpolation multiple times with an object
‣
does no replacement on %s and %(name)s if not in context
‣
leaves remaining %s if not enough items in context
‣
lib/auth-errors
toMessage
converts a code to a message
‣
converts a string type to a message
‣
leaves a string that is not a type alone
‣
uses forceMessage as the message if it exists
‣
converts an error from the backend containing an errno to a message
‣
converts an error from the backend containing a message to a message
‣
converts an empty error message from the backend to service unavailable
‣
converts a missing error from the backend to service unavailable
‣
converts SERVER_BUSY error correctly
‣
toContext
returns the context from backend information for invalid parameter
‣
returns the context from backend information for missing parameter
‣
returns empty context for other errors
‣
toCode
returns the errno from an error object
‣
converts a string type to a numeric code, if valid code
‣
returns the string if an invalid code
‣
is
checks if an error returned from the server is of a given type
‣
lib/app-start
start
start starts the app80ms
‣
redirects to /cookies_disabled if localStorage is disabled327ms
‣
sets the session service from a client_id query parameter181ms
‣
lib/validate
isEmailValid
returns false for email without a domain
‣
returns false for email without a one part domain
‣
returns true for valid email
‣
isTokenValid
returns false for non-hex value
‣
returns false for an odd-length hex value
‣
returns false for an empty string
‣
returns true for an even-length hex value
‣
isCodeValid
returns false for non-hex value
‣
returns false for an empty string
‣
returns false for one too few characters
‣
returns false for one too many characters
‣
returns true for just the right number
‣
isUidValid
returns false for non-hex value
‣
returns false for an empty string
‣
returns false for one too few characters
‣
returns false for one too many characters
‣
returns true for just the right number
‣
isPasswordValid
returns false with empty password
‣
returns false with one too few characters
‣
returns true with minimum expected characters
‣
lib/service-name
converts a service to the service name
‣
lib/metrics
getFilteredData
gets data that is allowed to be sent to the server
‣
gets non-optional fields
‣
logEvent
adds events to output data
‣
startTimer/stopTimer
adds a timer to output data
‣
flush
sends filtered data to the server and clears the event stream
‣
sends filtered data to the server on window unload
‣
handles server errors
‣
automatically flushes after inactivityFlushMs111ms
‣
lib/null-metrics
has the same function signature as Metrics
‣
flush returns a promise
‣
views/base
render
renders the template without attaching it to the body
‣
updates the page title with the embedded h1 and h2 tags
‣
updates the page title with the embedded h1 tag if no h2 tag
‣
updates the page title with the startup page title if no h1 or h2 tag
‣
shows one time success messages
‣
shows one time error messages
‣
afterVisible
focuses descendent element containing `autofocus` if html has `no-touch` class
‣
AssertionError: expected false to be true
   at assert (http://127.0.0.1:3030/bower_components/chai/chai.js:914:7)
   at Anonymous function (http://127.0.0.1:3030/bower_components/chai/chai.js:1134:5)
   at get (http://127.0.0.1:3030/bower_components/chai/chai.js:3563:9)
   at isTrue (http://127.0.0.1:3030/bower_components/chai/chai.js:2456:5)
   at Anonymous function (http://127.0.0.1:3030/tests/spec/views/base.js:156:11)
   at requiresFocus (http://127.0.0.1:3030/tests/lib/helpers.js:20:7)
   at Anonymous function (http://127.0.0.1:3030/tests/spec/views/base.js:145:9)
   at callFn (http://127.0.0.1:3030/bower_components/mocha/mocha.js:4338:5)
   at run (http://127.0.0.1:3030/bower_components/mocha/mocha.js:4331:7)
   at runTest (http://127.0.0.1:3030/bower_components/mocha/mocha.js:4728:5)
does not focus descendent element containing `autofocus` if html does not have `no-touch` class
‣
displayError/isErrorVisible/hideError
translates and display an error in the .error element
‣
hides any previously displayed success messages
‣
removes HTML from error messages
‣
adds an entry into the event stream
‣
displayErrorUnsafe
allows HTML in error messages
‣
adds an entry into the event stream
‣
displaySuccess
translates and display an success in the .success element
‣
hides any previously displayed error messages
‣
navigate
navigates to a page
‣
logs an error if an error is passed in the options
‣
focus
focuses an element
‣
trackSubview/untrackSubview
trackSubview tracks a subview, untrackSubview untracks the subview
‣
subview is automatically untracked when destroyed
‣
BaseView.preventDefaultThen
can take the name of a function as the name of the event handler
‣
can take a function as the event handler
‣
can take no arguments at all
‣
BaseView.cancelEventThen
can take the name of a function as the name of the event handler
‣
can take a function as the event handler
‣
can take no arguments at all
‣
searchParam
gets an item from the url's search parameters, if available
‣
returns `undefined` if search parameter is not available
‣
importSearchParam
imports an item from the url's search parameters, if available
‣
throws an error if search parameter is not available
‣
logEvent
logs an event to the event stream
‣
logError
logs an error to the event stream
‣
does not log already logged errors
‣
views/tooltip
render
renders and attaches the tooltip
‣
only one tooltip can be rendered at a time
‣
self destruct
when invalid element is changed
‣
views/form
enableSubmitIfValid
enables submit button if isValid returns true
‣
hides errors if isValid returns true
‣
disabled submit button if isValid returns false
‣
validateAndSubmit
submits form if isValid returns true
‣
shows validation errors if isValid returns false
‣
only allows one submit at a time
‣
does not submit if form is disabled
‣
displays error message and does not disable form if beforeSubmit throws an error
‣
beforeSubmit can return a false to stop form submission
‣
beforeSubmit can return a promise for asynchronous operations
‣
displays error message and does not re-enable form if submit throws an error
‣
submit can return a promise for asynchronous operations
‣
override afterSubmit to prevent form from being re-enabled - afterSubmit errors are not displayed
‣
afterSubmit can return a promise for asynchronous operations
‣
showValidationError
creates a tooltip
‣
focuses the invalid element
‣
logs the error
‣
adds invalid class to the invalid element
‣
invalid class is removed as soon as element is valid again
‣
getFormValues
gets the value of form fields that do not have the `data-novalue` attribute
‣
validateEmail
returns false if an empty email
‣
returns false if an invalid email
‣
returns true if a valid email
‣
validatePassword
returns false if an empty password
‣
returns false if too short a password
‣
returns true if a valid password
‣
validateInput
returns true for an empty non-required input
‣
returns true for a filled out non-required input
‣
returns false for an empty required input
‣
returns true for a filled out required input
‣
notifyDelayedRequest
shows a notification when the response takes too long then hides it508ms
‣
shows a notification when the response takes too long, switches when an error is thrown518ms
‣
should not hide forceMessage errors
‣
views/sign_up
render
prefills email, password, and year if stored in Session (user comes from signup with existing account)
‣
prefills email with email from search parameter if Session.prefillEmail is not set
‣
shows choose what to sync checkbox when service is sync even after session is cleared
‣
isValid
returns true if email, password, and age are all valid
‣
returns false if email is empty
‣
returns false if email is not an email address
‣
returns false if email contain one part TLD
‣
returns true if email contain two part TLD
‣
returns true if email contain three part TLD
‣
returns false if local side of email === 0 chars
‣
returns false if local side of email > 64 chars
‣
returns true if local side of email === 64 chars
‣
returns false if domain side of email === 0 chars
‣
returns false if domain side of email > 255 chars
‣
returns true if domain side of email === 254 chars
‣
returns false total length > 256 chars
‣
returns true if total length === 256 chars
‣
returns false if password is empty
‣
returns false if password is invalid
‣
returns false if age is invalid
‣
showValidationErrors
shows an error if the email is invalid
‣
shows an error if the password is invalid
‣
shows an error if no year is selected
‣
submit
sends the user to confirm screen if form filled out, >= 14 years ago239ms
‣
submits form if user presses enter on the year690ms
‣
sends the user to cannot_create_account screen if user selects <= 13 years ago
‣
sends user to cannot_create_account when visiting sign up if they have already been sent there
‣
shows message allowing the user to sign in if user enters existing verified account493ms
‣
re-signs up unverified user with new password575ms
‣
logs an error if user cancels signup
‣
re-throws any other errors for display
‣
updatePasswordVisibility
pw field set to text when clicked38ms
‣
pw field set to password when clicked again38ms
‣
views/complete_sign_up
render
shows an error if uid is not available on the URL
‣
shows an error if code is not available on the URL
‣
INVALID_PARAMETER error displays the verification link damaged screen
‣
UNKNOWN_ACCOUNT error displays the verification link damaged screen
‣
INVALID_VERIFICATION_CODE error displays the verification link damaged screen
‣
all other server errors are displayed
‣
redirects to /signup_complete if verification successful
‣
views/sign_in
prefills email with email from search parameter if Session.prefillEmail is not set
‣
render
prefills email and password if stored in Session (user comes from signup with existing account)
‣
updatePasswordVisibility
pw field set to text when clicked
‣
pw field set to password when clicked again
‣
isValid
returns true if both email and password are valid
‣
returns false if email is invalid
‣
returns false if password is invalid
‣
submit
redirects unverified users to the confirm page on success1292ms
‣
redirects verified users to the settings page on success1029ms
‣
logs an error if user cancels login
‣
rejects promise with incorrect password message on incorrect password979ms
‣
shows message allowing the user to sign up if user enters unknown account515ms
‣
passes other errors along
‣
showValidationErrors
shows an error if the email is invalid
‣
shows an error if the password is invalid
‣
resetPasswordIfKnownValidEmail
goes to the reset_password screen if a blank email
‣
goes to the reset_password screen if an invalid email
‣
/views/force_auth
missing email address
prints an error message
‣
with email
does not print an error message
‣
does not allow the email to be edited
‣
prefills password
‣
user cannot create an account
‣
isValid is successful when the password is filled out
‣
forgot password request redirects directly to confirm_reset_password822ms
‣
only one forget password request at a time
‣
views/settings
with no session
redirects to signin
‣
with session
shows the settings page
‣
submit
signs the user out, redirects to signin page260ms
‣
desktop context
does not show sign out link88ms
‣
views/change_password
with no session
redirects to signin
‣
with session
isValid
returns true if both old and new passwords are valid and different
‣
returns true if both old and new passwords are valid and the same
‣
returns false if old password is too short
‣
returns false if new password is too short
‣
showValidationErrors
shows an error if the password is invalid
‣
shows an error if the new_password is invalid
‣
submit
prints incorrect password error message if old password is incorrect (event if passwords are the same)124ms
‣
prints passwords must be different message if both passwords are the same and the first password is correct149ms
‣
changes from old to new password, redirects user to /settings1284ms
‣
changes from old to new password, keeps sessionTokenContext726ms
‣
shows the unverified user message if the user is unverified1039ms
‣
resendVerificationEmail
resends a verification email, and sends user to /confirm182ms
‣
views/delete_account
with no session
redirects to signin
‣
with session
isValid
returns true if password is filled out
‣
returns false if password is too short
‣
displays user email in session
‣
showValidationErrors
shows an error if the password is invalid42ms
‣
submit
deletes the users account, redirect to signup215ms
‣
views/confirm
constructor creates it
is drawn
‣
redirects to /signup if no sessionToken
‣
submit
resends the confirmation email, shows success message, logs the event771ms
‣
redirects to `/signup` if the resend token is invalid
‣
displays other error messages if there is a problem
‣
validateAndSubmit
only called after click on #resend253ms
‣
debounces resend calls - submit on first and forth attempt728ms
‣
oauth
redirects to signup_complete after account is verified1678ms
‣
views/tos
Back button displayed if Session.canGoBack is true
‣
Back button not displayed if Session.canGoBack is false
‣
fetches translated text from the backend43ms
‣
views/pp
Back button displayed if Session.canGoBack is true
‣
Back button not displayed if Session.canGoBack is false
‣
fetches ?? translated text from the backend
‣
views/reset_password
render
renders template
‣
pre-fills email addresses from Session.prefillEmail50ms
‣
isValid
returns true if email address is entered
‣
returns false if email address is empty
‣
returns false if email address is invalid
‣
showValidationErrors
shows an error if the email is invalid
‣
submit with valid input
submits the email address812ms
‣
submit with unknown email address
shows an error message143ms
‣
submit when user cancelled login
logs an error
‣
submit with other error
passes other errors along
‣
views/reset_password with email specified as query param
pre-fills email address
‣
removes the back button - the user probably browsed here directly
‣
views/confirm_reset_password
constructor
redirects to /reset_password if no passwordForgotToken
‣
`sign in` link goes to /signin in normal flow
‣
`sign in` link goes to /force_auth in force auth flow
‣
`sign in` link goes to /oauth/signin in oauth flow
‣
afterRender
polls to check if user has verified, if not, retry
‣
redirects to /signin if user has verified
‣
redirects to /oauth/signin if user has verified in oauth flow
‣
submit
resends the confirmation email, shows success message841ms
‣
redirects to `/reset_password` if the resend token is invalid
‣
displays other error messages if there is a problem
‣
validateAndSubmit
only called after click on #resend245ms
‣
a click on the signin link
saves Session.email to Session.prefillEmail so user's email address is prefilled when browsing to /signin
‣
views/complete_reset_password
render
shows form if token, code and email are all present
‣
shows malformed screen if the token is missing
‣
shows malformed screen if the code is missing
‣
shows malformed screen if the email is missing
‣
shows the expired screen if the token has already been used
‣
updatePasswordVisibility
pw field set to text when clicked52ms
‣
pw field set to password when clicked again62ms
‣
isValid
returns true if password & vpassword valid and the same
‣
returns false if password & vpassword are different
‣
returns false if password invalid
‣
returns false if vpassword invalid
‣
showValidationErrors
shows an error if the password is invalid
‣
shows an error if the vpassword is invalid
‣
validateAndSubmit
shows an error if passwords are different
‣
redirects to reset_password_complete if all is well
‣
reload view to allow user to resend an email on INVALID_TOKEN error
‣
shows error message if server returns an error
‣
resendResetEmail
redirects to /confirm_reset_password if auth server is happy
‣
shows server response as an error otherwise
‣
views/ready
render
renders with correct header for reset_password type
‣
renders with correct header for sign_in type
‣
renders with correct header for sign_up type
‣
shows service name if available
‣
does not show service name if service is defined but serviceName is not
‣
does not show redirectTo link if unavailable
‣
shows some form of marketing for english speakers
‣
views/cookies_disabled
constructor creates it
is drawn
‣
backIfCookiesEnabled
goes back in history if localStorage is enabled
‣
shows an error message if localStorage is still disabled
‣
views/clear_storage
clears localStorage and sessionStorage on render
‣
views/button_progress_indicator
start
shows the indicator
‣
done
hides the indicator
‣
multiple starts
must be matched by same number of dones
‣
showIndicator
replaces the button text with a spinner
‣
removeIndicator
replaces the spinner with the original button text
‣
views/marketing_snippet
render
normally shows sign up marketing material to desktop sync users
‣
shows survey to english speaking non-sync users
‣
shows survey to english speaking users on Firefox for Android
‣
shows survey to english speaking users on B2G
‣
shows nothing to non-english speaking, non-sync users
‣
render/show survey
shows survey to english users
‣
still shows default marketing to non-english desktop sync users
‣
lib/floating-placeholder-mixin
no action if enter is pressed with no other input
‣
floats the placeholder if the input changes
‣
views/mixins/timer-mixin
setTimeout
returns a handle that can be used to call clearTimeout
‣
calls a function after time has elapsed
‣
calls a function in the context of the view
‣
clearTimeout
clears an outstanding timeout
‣
destroying the view
removes any outstanding timeouts
‣
Button
Blanket.js results
Coverage (%)
Covered/Total Smts.
1./scripts/lib/translator.js
100 %
22/22
2./scripts/lib/session.js
98.08 %
51/52
3./scripts/lib/fxa-client.js
91.45 %
139/152
4./scripts/lib/strings.js
100 %
29/29
5./scripts/lib/constants.js
100 %
3/3
6./scripts/lib/auth-errors.js
94.12 %
32/34
7./scripts/lib/channels/web.js
85.71 %
6/7
8./scripts/lib/channels/fx-desktop.js
94.83 %
55/58
9./scripts/lib/xss.js
100 %
11/11
10./scripts/lib/url.js
93.75 %
15/16
11./scripts/lib/config-loader.js
93.55 %
29/31
12./scripts/lib/assertion.js
59.26 %
16/27
13./scripts/lib/metrics.js
100 %
65/65
14./scripts/views/sign_up.js
95.65 %
66/69
15./scripts/views/sign_in.js
100 %
39/39
16./scripts/router.js
93.18 %
41/44
17./scripts/views/form.js
96.43 %
162/168
18./scripts/views/force_auth.js
90.32 %
28/31
19./scripts/views/mixins/password-mixin.js
100 %
11/11
20./scripts/lib/validate.js
95.45 %
21/22
21./scripts/views/base.js
95.68 %
177/185
22./scripts/views/confirm.js
96.3 %
26/27
23./scripts/views/legal.js
100 %
4/4
24./scripts/views/tos.js
76.92 %
10/13
25./scripts/views/pp.js
76.92 %
10/13
26./scripts/views/cannot_create_account.js
100 %
4/4
27./scripts/views/complete_sign_up.js
76.92 %
30/39
28./scripts/views/reset_password.js
96.55 %
28/29
29./scripts/views/confirm_reset_password.js
89.47 %
34/38
30./scripts/views/complete_reset_password.js
90.2 %
46/51
31./scripts/views/ready.js
75 %
21/28
32./scripts/views/settings.js
100 %
9/9
33./scripts/views/change_password.js
89.66 %
26/29
34./scripts/views/delete_account.js
100 %
12/12
35./scripts/views/tooltip.js
100 %
30/30
36./scripts/views/cookies_disabled.js
100 %
12/12
37./scripts/views/clear_storage.js
100 %
8/8
38./scripts/lib/ephemeral-messages.js
100 %
7/7
39./scripts/views/button_progress_indicator.js
93.18 %
41/44
40./scripts/lib/null-metrics.js
100 %
8/8
41./scripts/views/mixins/timer-mixin.js
100 %
22/22
42./scripts/views/mixins/resend-mixin.js
84.21 %
16/19
43./scripts/views/mixins/floating-placeholder-mixin.js
100 %
15/15
44./scripts/views/marketing_snippet.js
100 %
27/27
45./scripts/lib/service-name.js
100 %
10/10
46./scripts/lib/app-start.js
94.64 %
53/56
Global total
93.68 %
1527/1630
2
FAIL: run the mocha tests (115786ms)
AssertionError: Failed to execute waitForElementByCssSelector(".grand-total .rs"): expected '2' to equal '0'
    at PromisedWebDriver.(anonymous function) [as waitForElementByCssSelector] (/Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/lib/wd.js:835:11)
    at registerSuite.run the mocha tests [as test] (/Users/kthiessen/Library/github/mozilla/fxa-content-server/tests/functional/mocha.js:53:10)
    at declare.run (/Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/lib/Test.js:151:19)
    at /Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/lib/Suite.js:206:13
    at signalListener (/Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/node_modules/dojo/Deferred.js:37:21)
    at Promise.then.promise.then (/Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/node_modules/dojo/Deferred.js:258:5)
    at /Users/kthiessen/Library/github/mozilla/fxa-content-server/node_modules/intern-geezer/lib/Suite.js:205:46
    at process._tickCallback (node.js:415:13)
0/1 tests passed
groupEnd: mocha tests
0/1 tests passed
groupEnd: main
Closing Sauce Connect Tunnel
Shutting down

@pdehaan pdehaan added this to the train-17 (Jul 14) milestone Jun 30, 2014
@shane-tomlinson
Copy link

In IE11 at least, jwcrypto->waitForSeed never completes.

@shane-tomlinson
Copy link

It looks like we may need to manually add entropy, but I'm not sure. @seanmonstar, have any info about how the RNG works in IE?

@shane-tomlinson
Copy link

Yes, if I add bogus entropy to jwcrypto using jwcrypto.addEntropy('asdfasdfasdfasdf'), assertions are generated as expected.

@shane-tomlinson
Copy link

In IE11, I can get all the mocha tests to complete (1 failure only!) - but only if I keep moving the mouse to keep the random number generator seeded.. YAY!

@vladikoff
Copy link
Contributor

only if I keep moving the mouse

We should add this for IE10+ then:

@shane-tomlinson
Copy link

screen shot 2014-07-02 at 17 07 51

BOOM! But only if I keep moving the mouse.

@seanmonstar
Copy link
Contributor

I'm sorry, I do not know that much of the internals of jwcrypto.

@shane-tomlinson
Copy link

@zaach and @vladikoff - Yo dudes, I've been running the profiler in IE11 and a lot of time in IE11 is being spent in the function w, line 444 of fxa-client.js. For whatever reason, if I move the mouse around, then the tests complete much faster. I'm very lost. Could there be any interactions between sjcl here and in jwcrypto?

We could bypass this problem by implementing @ckarlof's suggestion of mocking in the fxa-js-client.

@shane-tomlinson
Copy link

Even more odd, IE10 in Windows 7 runs the tests just fine, without moving the mouse.

shane-tomlinson pushed a commit that referenced this issue Jul 3, 2014
* IE10 passes with no additional work.
* IE11 requires mouse interaction for the tests to complete correctly.

issue #1334
@ckarlof ckarlof modified the milestones: 2014 Q3 (Sep 30), train-17 (Jul 14) Jul 7, 2014
@pdehaan pdehaan added the has PR label Jul 7, 2014
@ckarlof ckarlof modified the milestones: train-17 (Jul 14), 2014 Q3 (Sep 30) Jul 7, 2014
@pdehaan
Copy link
Contributor

pdehaan commented Jul 8, 2014

Closing. Fixed via #1355

@pdehaan pdehaan closed this as completed Jul 8, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

6 participants