fixes RD-4912
- removes lor_for_account logic
video: https://cl.ly/8150e0363891
test plan:
- make sure that installing commons, quizzes next, dig
or any app that has a global nav launch still completes successfully
without the need of having lor_for_account aka lor external tools
feature flag turned on
- make sure that the Lor External Tools feature
flag no longer exist in Account Settings Feature Options list
- make sure you can still launch an LTI app with a global nav launch
from the global nav
Change-Id: I0869fa359ca4ef92d69dd9fa6ce8be47c18dacc3
Reviewed-on: https://gerrit.instructure.com/206146
Tested-by: Jenkins
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
Reviewed-by: Daniel Lee <dlee@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
let blueprint course syncs, manual imports, and api initiated
imports run in independent queues and not block each other
closes #CORE-3237
Change-Id: Ib37cde3d317069748ad1a3fe91f41c82b8b95cd5
Reviewed-on: https://gerrit.instructure.com/204529
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
probably will be too many courses anyway and can time
out for root admins especially
refs #ADMIN-2790
Change-Id: I2b0e1f7888e7269238de47f28a8a83777bce7a14
Reviewed-on: https://gerrit.instructure.com/202812
Tested-by: Jenkins
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
- in a course, go to "import course content" and select
"copy a canvas course" as the source
- the "include concluded courses" checkbox should be
checked by default
- unchecking it should remove concluded courses from
the list as expected
closes ADMIN-2734
Change-Id: I2eb4aa31736ac162f1688698356f6a2421f99dd9
Reviewed-on: https://gerrit.instructure.com/199634
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Carl Kibler <ckibler@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
use in_frame instead of driver.switch_to
Change-Id: Ia00d5dc8520873d97dfdaf8971f7eb612d8eb341
Reviewed-on: https://gerrit.instructure.com/150180
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
test plan:
* use lolcalize to test:
- the "created" string on the page /courses/X/users/Y
- the import status for imports on
/courses/X/content_migrations
- also the error message when selecting
"unzip .zip file" type and not picking a folder
closes #CORE-576
Change-Id: I89ce6af2eaa31891f561aceda47f4022fd03b98d
Reviewed-on: https://gerrit.instructure.com/131507
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
* ENV['NO_MOCHA']=1 to disable mocha
* switch several core mocks to rspec-mocks
* fix Great Expectations to allow mock expectations
in before blocks
Change-Id: Icee8dee7f01234d2dd4e26ac13562fe9fc93665a
Reviewed-on: https://gerrit.instructure.com/119984
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
wait for the migration to be queued/running, otherwise we sometimes leave
the page before the ajax/upload/ajax dance finishes, making the spec fail
test plan:
./spec/selenium/content_migrations_spec.rb:115 should always pass now
Change-Id: I689127b351566ef86cfea024a97ad938a92dbd7f
Reviewed-on: https://gerrit.instructure.com/89393
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
delete most skipped specs... basically any that were skipped over a year
ago and have no ticket (or the ticket is wontfixed)
for specs that have testrail ids or new tickets, remove the body but leave
the `it` as a TODO
also delete a couple specs that didn't actually exercise any UI, and
were redundant w/ model specs
Change-Id: I9d16299f13b451d3b4baef0895fd1b414036163d
Reviewed-on: https://gerrit.instructure.com/80077
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
fixes SD-1147
now if you nest any waiting matchers/helpers in a keep_trying_until,
you'll get an error. the eventual goal is to remove keep_trying_until
and wait_for_ajaximations entirely
misc enhancements:
* make `be_displayed` wait
* add `have_size` matcher for ff and friends that will automatically
wait (and reload)
* remove not_found because it was slow
* make in_frame a little smarter
* add various helpers, e.g.
* dismiss_flash_messages
* scroll_into_view
* scroll_element
Change-Id: Ib5fc27ed72b14ca9453e3c3d57a37c8633843faa
Reviewed-on: https://gerrit.instructure.com/80257
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
Tested-by: Jenkins
fixes SD-1063, speeds up :allthethings:
negative DOM assertions are 💩, but if we must have them, make them
more tolerable. the old way:
expect(f(".something-that-should-be-gone")).to be_nil
expect(fj("buhleeted:visible")).to be_nil
expect(fln("Can't Click Here Anymore").to be_nil
the new way:
expect(container).not_to contain_css(".something-that-should-be-gone")
expect(container).not_to contain_jqcss("buhleeted:visible")
expect(container).not_to contain_link("Can't Click Here Anymore")
(you can of course use these new matchers for positive assertions as well)
although it's a tad more verbose, the new way is better because:
1. it's smart enough to bail once the assertion is met (versus the old way
which would take 10-20 seconds to not find the thing and *then* run the
assertion)
2. it requires them to be scoped, to reduce the likelihood of false
positives (e.g. if the page is totally broken, then of course the
assertion would pass)
also reworked the various flash message assertions... see the new
expect_flash_message and expect_no_flash_message
this should remove over an hour of linear time off the build (10 sec per
old assertion, except fj ones which took 20 sec)... so like a minute of
actual time, cuz parallelization :P
a consequence of this change is that f/fj/ff/ffj now raise if nothing is
found, so you really have to go out of your way to do it the bad way. so
don't :)
Change-Id: I0fe6e8500947c27d748b70bb2cda585edf71e427
Reviewed-on: https://gerrit.instructure.com/78420
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
for compatibility with firefox 44
!
main problem is that labels for checkboxes are blocking
them from being clicked on
Change-Id: I85d3572d47ed95249f7216e5e102b4d398168251
Reviewed-on: https://gerrit.instructure.com/73207
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Test Plan:
-Specs should pass
-Code review
Change-Id: Ia915a74402259811dd7f3d1ad80c130e2e4efd33
Reviewed-on: https://gerrit.instructure.com/74483
Tested-by: Jenkins
Reviewed-by: Pedro Fajardo <pfajardo@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
but make sure we have default roles everywhere. this will allow us to use
schema snapshots (w/ no data) for all the shards in CI-land
refs SD-857
Change-Id: I7f1ca2253af86f71a9bef243b6bb51f94a927aef
Reviewed-on: https://gerrit.instructure.com/73143
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
previously, we imported nested modules together within
one module, (using nesting to distinguish between submodules)
possibly leading to very large modules
now, submodules can be broken up on import using the
"Select Content" dialog
test plan:
* import the Common Cartridge package referenced in the ticket
using the "Select specific content" option
* use the dialog to navigate the module tree and select
specific sub-modules
* if all sub-modules of a given module are selected, a
radio toggle should appear to choose whether to import
the module as one or to split them up
closes #CNVS-26696
Change-Id: Ia542cd7ec847e810a01d92c675c6cc92d1247345
Reviewed-on: https://gerrit.instructure.com/71099
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
Change-Id: If5437f5e0125c544936f526e7ab4880c62b1e7b3
Reviewed-on: https://gerrit.instructure.com/65757
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
- reasoning: this group contains set-up and teardown,
it does not include 'it' blocks
Change-Id: I1803420a5c7f59246f3af211e42ced808a994c3f
Reviewed-on: https://gerrit.instructure.com/60329
Tested-by: Jenkins
Reviewed-by: Matt Fairbourn <mfairbourn@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
test plan:
* visit the "Import Content" page for a course
* select the "Copy a Canvas Course" type from the
drop-down
* should receive a warning icon with a popover explanation
when trying to copy the current course into itself
closes #CNVS-14642
Change-Id: Ieb50e156146af03365f4b283b7d6d2bbe183ef9d
Reviewed-on: https://gerrit.instructure.com/48533
Tested-by: Jenkins
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes #CNVS-12934
When attempting to view a course that is
unpublished, or is published but with course start
and end override dates in the future,
it gives an unauthorized page,
but the "Last Activity" field in the course
roster registers your access. Teachers are
reading it as students are accessing courses
when they shouldn't be able to, and
contacting support.
Also refactors out "recent activity" from
the enrollment model into a class of it's own
this ALSO solves a recurring problem present
on master with the "content_migrations_spec"
which causes a spec group to fail only
when run with other specs, but not when
you run it in isolation, due to the
caching of Account.default.
TEST PLAN:
- Create a course and edit the start and end
dates on it to be in the future and check
the box "Users can only participate in the
course between these dates"
- Add a user to the course that already exists
on the institution as a student
- Masquerade as this user and go to the courses
homepage URL manually
- Stop masquerading after you receive the
un-authorized page and check the course roster
- The student you invited should still be pending,
and SHOULD NOT have a "Latest Activity" time.
Change-Id: Ifc03e79b2eb2d4933dffb11d167d20734facd490
Reviewed-on: https://gerrit.instructure.com/40855
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
test plan:
* add an external tool configured for the extensions
going to be used by LOR (:course_settings_sub_navigation,
:course_home_sub_navigation, :migration_selection)
* confirm that it is not shown to a user unless either
the account-level feature flag is enabled or the
user-level flag is enabled
closes #CNVS-14626
Change-Id: I06e189fc1f2d745613353ea1b3f98b4f4b2c87b6
Reviewed-on: https://gerrit.instructure.com/39111
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
also remove some code that accomplishes nothing but confusion
test plan: perform content migrations into a course via the web UI
1. without adjusting dates
2. shifting dates
3. removing dates
and verify that the correct operation is performed for each migration.
test all of these workflows:
1. Course Settings / Copy this Course
2. Import Content / Copy a Canvas Course
3. Import Content / course export package
fixes CNVS-14183
Change-Id: I965a8ba6e6b0971cd0b5561627716989191a9680
closes #CNVS-14302
Change-Id: Ie9850318290620da22a37b44fe151b3f36079b8f
Reviewed-on: https://gerrit.instructure.com/38264
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes: CNVS-347
Adds state change logging activity for courses. This change also adds an event
source field to all the course activity events. The options for this is api,
manual, and sis.
Note: This also adds a fix for the event stream record object to force request_id to
be a string. Event stream will try to insert an integer into a text column which
Cassandra will complain about and throw an error.
Test Plan:
- Test for each type of Event:
* Concluded
* Unconcluded
* Published
* Deleted
* Restored
* Updated
* Created
* Copied To
* Copied From
- Test each type of event and each source. Note that some events can only
have certain sources. Also make sure SIS migrations show that the source
is type SIS.
Change-Id: Ic2308e1d10e6fc1cc6437221d7842eaf1a596f46
Reviewed-on: https://gerrit.instructure.com/30343
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
An external tool configured for the migration extension will
show up on a course's content import page and allow you to
select a file to migrate from the LTI launch.
fixes LOR-20
Test Plan:
* Configure an external tool that has the migration_selection
extension
* The new tool should show in the dropdown on the content
import page.
* Run some migrations through the external tool.
Change-Id: Iea16a7e32145e6799c551816e6f70a73f2a8c3d0
Reviewed-on: https://gerrit.instructure.com/21443
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Trent <jaketrent@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-9885
When you import or copy a course you are given the option to select the
content you want to import. The option to select this was a checkbox
but has now been changed to a radio button. This should help people who
are confused by the process or forget to check the selective content
button. Default should be selecting all content
Test Plan
1. copy a course by going to 'import content into this course' for the
course settings.
2. select the radio button 'select migration content'
3. it should still allow you to select migration content
4. select all content should be the default
5. Next..
6. Go to course settings and click on 'copy this course'
7. There should be two radio buttons now that say 'All content' and
select specific content.
8 The default should be 'All content'
Change-Id: I62c7161c621e6872048b04a5a2c0fe696adf316f
Reviewed-on: https://gerrit.instructure.com/31112
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jeff Fox
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Change-Id: I27f4334f96ced8b850a9e7b9705c74d08a09311b
Reviewed-on: https://gerrit.instructure.com/31533
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: I4f73aada8038dc5f882d2a49f631461e23f7c771
Reviewed-on: https://gerrit.instructure.com/30416
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan:
- use the API to copy a course referred by sis_source_id
fixes CNVS-10959
Change-Id: I2297e86969dbc630f75a6ce856a3603b919fd62b
Reviewed-on: https://gerrit.instructure.com/29795
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-10400
fixes CNVS-10399
Test Plan
1. Copy a course, any course (with content). Make sure to copy a course
and check the 'select content' option.
2. When asked to "select content" by pressing the blue button when
migrating a course, observe the follow:
a) Checkboxes should now look like the new design kyle made. This
includes removing the old "Select All" buttons and checkbox groups now
have a nice border around them.
b) There is now a arrow next to checkboxes that represent if a
checkbox group has been expanded or not. Clicking top level checkbox
arrows should load it's sub checkboxes. This only happens once to
imporve performance.
c) Checking a toplelve checkbox and then expanding should also check
all of this child checkboxes.
d) There is now what's called an 'indeterminate' state for checkboxes.
If you have a child checkbox inside of a folder and you only select one,
the parent checkboxes will be given a line through them that represents
an 'indeterminate' state.
e) Migrating a course should work as normal.
f) Pressing the 'cancel' button should close the dialog window
g) The 'Select content' button should be disabled unless you have
selected at least one item via click a checkbox.
Change-Id: I3c57d16ab7d09ab4b4e61167160ab47da0a34018
Reviewed-on: https://gerrit.instructure.com/29418
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
in particular, change "it_should_behave_like" to
"include_examples" (in rails 3, "it_should_behave_like"
does not extend the defined methods to nested examples)
Change-Id: I24c3d0a214e763cd61bbe73e055f610e021fddd0
Reviewed-on: https://gerrit.instructure.com/28157
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>