closes LA-698
flag=rce_enhancements
test plan:
- edit something with the rce
- add some text
- using devtools, slow down your network (this will give you
time later)
- upload an image (or anything, really)
> expect the grey placeholder box
- refresh (before the image replaces the placeholder)
> expect to be prompted to restore autosaved content
- say yes
> expect the RCE not to have the placeholder image
Change-Id: I79211fa8daa77d51ff15e73563dcce48103cbdb8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228721
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
which is typically an iframe
closes LA-628
flag=rce_enhancements
test plan:
- in the rce, choose Media > Upload/Record Media, the the Embed
tab, then paste in some html (you can get a real video from
youtube, or just type any old valid html element code)
- click submit
- click save
> expect the element you added to have a title="embedded content"
- repeat, but when you enter the embed code, give the embedded
html an aria-label or title attribute
- submit and save
> expect the embedded element to have kept its original title
or aria-label
Change-Id: I42a8ee26e8a95aa255705f09efcf581de69664d5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228273
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
After clicking media button, we were grabbing aria-owns
attribute before the animations were done resulting in
null being returned. Add wait_for_animations before
grabbing attribute.
flag = none
Test Plan:
Jenkins selenium-chrome passes
Change-Id: Iadd9bff62feaa2c24f3782da3eabacbef9a41a4f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228850
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
refs TALLY-565
Change-Id: I2ef1e777b1ed2036396bace7f519dfebaf30b4b2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227083
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Jeremy Neander <jneander@instructure.com>
closes: LA-357
You guessed it. Another flaky spec that was
a byproduct of old jenkins and an alert issue.
Unskipped and it seems it all works out.
Change-Id: I26fc8abf97f45a69fc1e5166ce26ee4d677ca185
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226889
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
Make the RCE menus execute the same commands as the toolbar instead of
Tiny's internal commands. Add menu items for things only currently found
in the toolbar.
closes LA-468, LA-403
flag=rce_enhancements
test plan:
- Play around with the RCE menus. They should generally do the same
things as the corresponding toolbar options.
- Check the new "Horizontal line" menu item in the Insert menu
Change-Id: If9abce772496c89cd0a2ec64540aaaf86c77b418
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226164
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
Many folks—UX/UI Designers, Product Designers, Project Managers, QA
Engineers, Software Engineers—worked diligently over the span of nearly
four years to bring New Gradebook to the world. It was an effort beyond
the abilities of a few. It needed a team.
The committer would like to recognize the following folks who
contributed directly to the success of New Gradebook. Each person here
brought something unique and invaluable to the endeavor.
Christi Wruck
Danaan Clarke
Davis Phillips
Jon Fenton
Kendall Chadwick
Kyle Dubya Follett
Matt Goodwin
Pert Eilers
Sidharth Oberoi
Co-authored-by: Adrian Packel <apackel@instructure.com>
Co-authored-by: Amber Taniuchi <amber@instructure.com>
Co-authored-by: Anju Reddy <areddy@instructure.com>
Co-authored-by: Brian Park <brian@siimpl.io>
Co-authored-by: Cameron Matheson <cameron@instructure.com>
Co-authored-by: Derek Bender <djbender@instructure.com>
Co-authored-by: Gary Mei <gmei@instructure.com>
Co-authored-by: Indira Pai <ipai@instructure.com>
Co-authored-by: James Butters <jbutters@instructure.com>
Co-authored-by: KC Naegle <knaegle@instructure.com>
Co-authored-by: Keith Garner <kgarner@instructure.com>
Co-authored-by: Matt Taylor <mtaylor@instructure.com>
Co-authored-by: Neil Gupta <ngupta@instructure.com>
Co-authored-by: Nick Pitrak <npitrak@instructure.com>
Co-authored-by: Robin Kuss <rkuss@instructure.com>
Co-authored-by: Ryan Kuang <rkuang@instructure.com>
Co-authored-by: Shahbaz Javeed <sjaveed@instructure.com>
Co-authored-by: Sheldon Leibole <sheldon@siimpl.io>
Co-authored-by: Spencer Olson <solson@instructure.com>
Sincere appreciation to you all.
We will continue to find remnants of Old Gradebook, and clear those out
when we do. But this is the bulk of it.
closes TALLY-516
test plan:
* Smoke test New Gradebook
* Verify that the world is ready for this
* Maybe get some sleep
Change-Id: I247b8cf93cd75ab7968e3ece615695cd00017ff0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/225211
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
closes LA-560
flag=rce_enhancements
test plan:
- from /plugins/kaltura
- check "disable this plugin" and click Apply
- edit something witn an RCE
- click on Media toolbar button
> expect the Upload/Record media menu item not to be there
- return to /plugins/kaltura
- uncheck "disable this plugin"
- fill in the rest if not already and click Apply
- edit something with an RCE
- click on Media toolbar button
> expect the Upload/Record media menu item to be first in the list
Change-Id: Iac680c9e8cb4af1cfae8b212c22e387f025f834a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/225195
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
The previous placeholder was an <img src="data:image/gif...">. When
autosave saved it, it got saved as an <img src="blob:...">, which
cannot be restored. By changing it to a <div>, the problem goes away.
The only side-effect is that if the upload fails and the user wants
to delete the placeholder, it used to take one click of the BS key.
Now they have to delete the "Loading..." text and the <div> will
eventually go with it.
closes LA-475
flag=rce_enhancements
test plan:
- with notorious not running
- in the RCE, upload media
> expect the "Loading..." grey placeholder box
- refresh the page
> expect to be prompted with auto-saved content
- say Yes
> expect the grey box in the RCE
- iwth notorious running
- in the RCE, upload media
> expect the "Loading..." grey box
> expect the grey box to go away once the media appears
Change-Id: If16037b4b3310eb8bdc8212bc1ed1d8dc83b657d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/224433
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
We originally looked for saved content to restore, and
prompted the user about it before cleaning up expired
autosaved content. This is backwards.
closes LA-518
flag=rce_enhancements,rce_auto_save
test plan:
- edit something with an RCE then navigate to another page
without saving
- edit again, soon.
> expect to be prompted to restore saved content
- edit some more and navigate away without saving
- edit again later, after the timeout period expires (this is
1 hour, but you caould do
Setting.set('rce_auto_save_max_age_ms', 10)
in a console and change it to 10ms
> expect not to be prompted to restore saved content
Change-Id: I35b17ccc744f3c0c6138980a5131404532aef3ba
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/224523
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
closes LA-536
flag=rce_enhancements
test plan:
- open a page with the rce
- click the Media toolbar button
> expect "Upload/Record Media menu item to be available
- go to /plugins, click on kaltura, check the
"Hide the video icon in Rich Content Editor." checkbox
and click Apply
- return to a page with the rce
- click the Media toolbar button
> expect "Upload/Record Media menu item to be absent
Change-Id: I7c7d89c18115c8d2970da4db736614d252a3661a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/224823
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Autosaves what you type into the RCE in local storage
keyed by "rceautosave:{your url here}:{textarea.id}"
Only enabled for pages where there is one RCE.
closes LA-219, LA-469
flag=rce_auto_save
rce_enhancements flag must also be on
test plan:
- create a new announcement or assignment
- type some stuff in the rce
- refresh the page
> expect to be prompted to restore saved content
- save the thing
- edit the thing and make some changes
- cancel
- re-edit
> expect to be prompted to restore saved content
- edit again, make changes, save, re-edit
> expect not to be prompted
- do more stuff like that
test max-age timeout
- in the rails console, run
Setting.set('rce_auto_save_max_age_ms', 10000)
- create a new announcement, put some text in and
wait 10 seconds
- create a new assignment
(jump to /courses/:id/assignments/new)
> expect local storage to include the entry for
the announcement's url is gone (you can do this
with devtools)
test exceeding storage quota
- this is more easily tested in firefox
- in FF go to about:config and search for
dom.storage.default_quota
- change the value to 1 (k)
- create a new announcement and past almost-a-k's
worth of text. this works:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis rhoncus erat nunc, ut euismod odio tristique volutpat.
Vivamus porttitor, nulla vel convallis ultrices, leo leo bibendum
ligula, at egestas augue velit eget est. Vivamus tincidunt,
metus non consectetur vulputate, ex neque sagittis neque,
aliquet luctus ex felis sed neque. Nullam vel feugiat tellus,
in sagittis lorem. Nullam facilisis turpis vel justo sollicitudin gravida.
Sed volutpat vel velit a lobortis. Donec vel condimentum massa.
Maecenas feugiat cursus condimentum. Nam iaculis ex vitae nibh interdum
pretium. Duis tincidunt diam sit amet fringilla finibus. Aenean magna
velit, accumsan eget scelerisque ut, mattis in erat.
- w/o saving, create create a new assignment,
(/courses/:id/assignments/new)
add ^that lorem ipsum, and refresh
> expect localStorage to have deleted the announcement's auto-saved text
and saved the assignment's text
Change-Id: Ia5f8161cc28213d2361054ddad1b189a3bad06d9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222311
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Lauren Williams <lcwilliams@instructure.com>
Converts all the actions taken by our plugins into
ExecCommand calls, and then we close the floating toolbar
on('ExecCommand'). This works, and I actually like the plugins
executing execCommand to do stuff.
We also close the floating toolbar on('blur'), so it closes if
the user moves focus away from the rce.
closes LA-167
flag=rce_enhancements
test plan:
- enable "Assignment Enhancements - Student" in a course
- create a Text Entry assignment in the course
- navigate to the assignment as a student
- click "Edit" to create the RCE
- shrink your browser until the ... more button is in the toolbar
- click it to open the floating toolbar
- do anything in the rce
- try the Images > User Images
- try highlighting some text, then open the More toolbar,
then click "B"
> expect the floating toolbar to close
- try opening the floating toolbar, then click somewhere else
on the page
> expect the toolbar to close
- open the floating toolbar, then click on "Comments" tab
> expect the toolbar to close
- return to "Attempt 1" tab, open the editor and the toolbar
- click "Cancel" or "Save"
> expect the toolbar to close
Change-Id: Id588c0d744a1ef1301af1ac080c741c94de19937
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221992
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Change-Id: Ie137c1040260b363979160e1f0558883577ebebd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222510
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
closes LA-113
flag=rce_enhancements
test plan:
- have a user upload a video from their Files page
- have a user upload a video from a course's Files page
- open a page with the RCE
- upload a video via the RCE
- select Media > Course Media from the toolbar
> expect the videos uploaded to the course's Files and via the RCE
- click on one
> expect it to be embedded in the RCE
- select Media > My Media
> expect the videos uploaded to the user's Files page
- click on it
> expect it to be embedded in the RCE
- same should work for audio
Change-Id: I7878963f0e2f6e18cf04eb52a8a5d78d467d86a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218722
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
This makes it so everything is User Files
rather than My Files, and so forth for all the various
options.
Test Plan:
- Go to the RCE
- You should not see "My" describing any of the User options
closes LA-353
flag = rce_enhancements
Change-Id: Icc6efdfcfa388c3b3795c037cbe45bd95dd9a614
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221292
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Trigger the selenium build so we can watch for issues and flaky
specs. Skips a few flaky specs with jira tickets to come. Set
reruns to 2 so we can rule out any minor flaky specs.
rspec-tests.sh and rspec-with-retries.sh removed nounset and all logging
for rspec-with-retries.sh.
fixes: CCI-126
flag = none
Test plan:
Selenium builds are triggered with each ps from the main-canvas build.
Change-Id: I504e1b158e1c85e9c137a5b5757be101207420d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219425
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
closes LA-272
flag=rce_enhancements
test plan:
- in new RCE, the format dropdown should read "Header 2/3/4" and should
still work.
Change-Id: Icae5849055ef9d81a4e73cf5c5b5e052af5be65e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219122
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
Removing the wait_for_new_page_load from all get usages
since the get method already waits for page load.
Change-Id: I6e0e228e229dcd059d0b5a809b4ac30168886fc0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/215106
Tested-by: Jenkins
Reviewed-by: Steve Shepherd <sshepherd@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
closes ADMIN-2778
flag=none
test plan:
- confirm 'Accessible Course Menu' feature flag is gone
- course sidebar menu maintains all recent a11y changes:
* aria-current="page" on current page
* uses course color
* high contrast mode works right
* basically, compare it to production behavior
Change-Id: Iae20776effa9421ed26c963f6d148ed0b118fab3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/214631
Tested-by: Jenkins
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Carl Kibler <ckibler@instructure.com>
files_tab can load slow and be disabled when we try to click
it. By improving the selector with ":not([aria-disabled])"
it will wait for the element to be enabled.
Change-Id: I164c95d1dff15e4bb801132e7972d11ebc87eeca
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/214550
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Tested-by: Jenkins
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
skip spec/selenium/rcs/wiki_and_tiny_student_files_spec.rb:124 until
we can make more stable.
Change-Id: I460e01b11aac84190215be0a6cb0ee628cc383e4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/214482
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Steve Shepherd <sshepherd@instructure.com>
Tested-by: Jenkins
possibly_hidden_toolbar_button method was throwing a
noSuchElement exception when there was no more_toolbar_button.
Modified it to rescue the exception and handle it.
Change-Id: Ia60f1325b9244e1a9c2e884af799c6a0b3877e47
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/214412
Tested-by: Jenkins
Reviewed-by: Steve Shepherd <sshepherd@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
closes: COREFE-365
this version of InstUI no longer appends the data-cid attributes from
instUI's testable when NODE_ENV===production. that is because it slows
things down in produciton. and since our selenium build runs with
NODE_ENV=production when it runs webpack we can't use those in our
selenium tests. you need to use semantic stuff or data-test-ids or
something else to find things instead.
test plan:
* automated tests should pass
Change-Id: Id346d6c4e25d8b7b148ebf9ad9fd09cbab6e7dfb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/213301
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
Test Plan:
- Using the new RCE:
- Hover over the plug icon
- The tooltip should say Apps
closes COREFE-341
flag = rce_enhancements
Change-Id: I8e40b034b24991af0a132a0776efd9b330ddc475
Reviewed-on: https://gerrit.instructure.com/212101
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
the current defalut window-size is so small it causes
flakiness with specs and is smaller than what a
real user would be using. Changed to use window
size 1680x1050 using selenium methods rather than
the custom javascript stuff we have currently.
Change-Id: Ie6b31540e6cd1ba7d1f561fb2ea5f35e8a041c22
Reviewed-on: https://gerrit.instructure.com/212239
Tested-by: Jenkins
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>