turn on better_file_browsing globally
test plan: new files should be enabled everywhere and should be locked in the feature settings UI (can't be turned off) closes CNVS-20656 Change-Id: I3a5b361deeb90780c899eaa3a84bf1eecfec2bbf Reviewed-on: https://gerrit.instructure.com/55010 Tested-by: Jenkins Reviewed-by: James Williams <jamesw@instructure.com> QA-Review: Clare Strong <clare@instructure.com> Product-Review: Jeremy Stanley <jeremy@instructure.com>
This commit is contained in:
parent
5c355ebe97
commit
eabb597b43
|
@ -323,8 +323,7 @@ class FilesController < ApplicationController
|
|||
end
|
||||
|
||||
def react_files
|
||||
raise ActiveRecord::RecordNotFound unless (@context.is_a?(User) ? @domain_root_account : @context).feature_enabled?(:better_file_browsing)
|
||||
if tab_enabled?(@context.class::TAB_FILES)
|
||||
if authorized_action(@context, @current_user, :read) && tab_enabled?(@context.class::TAB_FILES)
|
||||
@contexts = [@context]
|
||||
get_all_pertinent_contexts(include_groups: true) if @context == @current_user
|
||||
files_contexts = @contexts.map do |context|
|
||||
|
|
|
@ -222,8 +222,7 @@ goes to the personal files page for a user ('/files') then you need to turn it o
|
|||
END
|
||||
|
||||
applies_to: 'Course',
|
||||
state: 'allowed',
|
||||
beta: true
|
||||
state: 'on'
|
||||
},
|
||||
'modules_next' =>
|
||||
{
|
||||
|
|
|
@ -850,7 +850,6 @@ describe "Files API", type: :request do
|
|||
context "with usage_rights_required" do
|
||||
before do
|
||||
@course.enable_feature! :usage_rights_required
|
||||
@course.enable_feature! :better_file_browsing
|
||||
user_session(@teacher)
|
||||
@att.update_attribute(:locked, true)
|
||||
end
|
||||
|
|
|
@ -596,33 +596,16 @@ describe FilesController do
|
|||
@file.update_attribute(:locked, true)
|
||||
end
|
||||
|
||||
context "without better_file_browsing" do
|
||||
before do
|
||||
@course.disable_feature! :better_file_browsing
|
||||
end
|
||||
|
||||
it "should publish without usage rights" do
|
||||
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
|
||||
expect(@file.reload).not_to be_locked
|
||||
end
|
||||
it "should not publish if usage_rights unset" do
|
||||
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
|
||||
expect(@file.reload).to be_locked
|
||||
end
|
||||
|
||||
context "with better_file_browsing" do
|
||||
before do
|
||||
@course.enable_feature! :better_file_browsing
|
||||
end
|
||||
|
||||
it "should not publish if usage_rights unset" do
|
||||
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
|
||||
expect(@file.reload).to be_locked
|
||||
end
|
||||
|
||||
it "should publish if usage_rights set" do
|
||||
@file.usage_rights = @course.usage_rights.create! use_justification: 'public_domain'
|
||||
@file.save!
|
||||
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
|
||||
expect(@file.reload).not_to be_locked
|
||||
end
|
||||
it "should publish if usage_rights set" do
|
||||
@file.usage_rights = @course.usage_rights.create! use_justification: 'public_domain'
|
||||
@file.save!
|
||||
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
|
||||
expect(@file.reload).not_to be_locked
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -765,7 +748,6 @@ describe FilesController do
|
|||
end
|
||||
|
||||
it "should create the file in locked state if :usage_rights_required is enabled" do
|
||||
@course.enable_feature! :better_file_browsing
|
||||
@course.enable_feature! :usage_rights_required
|
||||
user_session(@teacher)
|
||||
post 'create_pending', {:attachment => {
|
||||
|
|
|
@ -46,7 +46,6 @@ describe FileInContext do
|
|||
|
||||
describe "usage rights required" do
|
||||
before do
|
||||
@course.enable_feature! :better_file_browsing
|
||||
@course.enable_feature! :usage_rights_required
|
||||
@filename = File.expand_path(File.join(File.dirname(__FILE__), %w(.. fixtures files a_file.txt)))
|
||||
end
|
||||
|
|
|
@ -150,7 +150,6 @@ describe ContentMigration do
|
|||
ur = @copy_from.usage_rights.create! use_justification: 'used_by_permission', legal_copyright: '(C) 2015 Wyndham Systems'
|
||||
Attachment.where(id: [attNU.id, attLU.id]).update_all(usage_rights_id: ur.id)
|
||||
|
||||
@copy_to.enable_feature! :better_file_browsing
|
||||
@copy_to.enable_feature! :usage_rights_required
|
||||
yield
|
||||
|
||||
|
|
|
@ -1,251 +0,0 @@
|
|||
require File.expand_path(File.dirname(__FILE__) + '/common')
|
||||
require File.expand_path(File.dirname(__FILE__) + '/helpers/files_common')
|
||||
|
||||
describe "shared files tests" do
|
||||
include_examples "in-process server selenium tests"
|
||||
|
||||
def fixture_file_path(file)
|
||||
path = ActionController::TestCase.respond_to?(:fixture_path) ? ActionController::TestCase.send(:fixture_path) : nil
|
||||
return "#{path}#{file}"
|
||||
end
|
||||
|
||||
def add_file(fixture, context, name)
|
||||
context.attachments.create! do |attachment|
|
||||
attachment.uploaded_data = fixture
|
||||
attachment.filename = name
|
||||
attachment.folder = Folder.root_folders(context).first
|
||||
end
|
||||
end
|
||||
|
||||
def make_folder_actions_visible
|
||||
driver.execute_script("$('.folder_item').addClass('folder_item_hover')")
|
||||
end
|
||||
|
||||
before do
|
||||
local_storage!
|
||||
end
|
||||
|
||||
it "should make folders in the menu droppable local" do
|
||||
should_make_folders_in_the_menu_droppable
|
||||
end
|
||||
|
||||
it "should show students link to download zip of folder local" do
|
||||
should_show_students_link_to_download_zip_of_folder
|
||||
end
|
||||
|
||||
context "as a teacher" do
|
||||
|
||||
before (:each) do
|
||||
local_storage!
|
||||
user_with_pseudonym :username => "nobody2@example.com",
|
||||
:password => "asdfasdf2"
|
||||
course_with_teacher_logged_in :user => @user
|
||||
create_session(@pseudonym)
|
||||
add_file(fixture_file_upload('files/html-editing-test.html', 'text/html'),
|
||||
@course, "html-editing-test.html")
|
||||
get "/courses/#{@course.id}/files"
|
||||
keep_trying_until { expect(fj('.file')).to be_displayed }
|
||||
make_folder_actions_visible
|
||||
end
|
||||
|
||||
it "should allow you to edit a file name" do
|
||||
edit_name = 'edited html file'
|
||||
fj('.file .rename_item_link:visible').click
|
||||
file_name = f('#rename_entry_field')
|
||||
wait_for_ajaximations
|
||||
replace_content(file_name, edit_name)
|
||||
wait_for_ajaximations
|
||||
file_name.send_keys(:return)
|
||||
wait_for_ajaximations
|
||||
last_file = Folder.last.attachments.last
|
||||
expect(f('#files_content')).to include_text(last_file.display_name)
|
||||
end
|
||||
|
||||
it "should allow you to delete a file" do
|
||||
fj('.file .delete_item_link:visible').click
|
||||
driver.switch_to.alert.accept
|
||||
wait_for_ajaximations
|
||||
last_file = Folder.last.attachments.last
|
||||
last_file.file_state == 'deleted'
|
||||
expect(f('#files_content')).not_to include_text(last_file.display_name)
|
||||
end
|
||||
|
||||
it "should allow you to lock a file" do
|
||||
fj('.file .lock_item_link:visible').click
|
||||
lock_form = f('#lock_attachment_form')
|
||||
expect(lock_form).to be_displayed
|
||||
wait_for_ajaximations
|
||||
submit_form(lock_form)
|
||||
wait_for_ajaximations
|
||||
expect(fj('.file .item_icon:visible')).to have_attribute('alt', 'Locked File')
|
||||
expect(Folder.last.attachments.last.locked).to be_truthy
|
||||
end
|
||||
|
||||
context 'tinyMCE html editing' do
|
||||
|
||||
before (:each) do
|
||||
link = keep_trying_until { f("li.editable_folder_item div.header a.download_url") }
|
||||
expect(link).to be_displayed
|
||||
expect(link.text).to eq "html-editing-test.html"
|
||||
end
|
||||
|
||||
def click_edit_link(page_refresh = true)
|
||||
get "/courses/#{@course.id}/files" if page_refresh
|
||||
link = keep_trying_until { f("li.editable_folder_item div.header a.edit_item_content_link") }
|
||||
expect(link).to be_displayed
|
||||
expect(link.text).to eq "edit content"
|
||||
link.click
|
||||
wait_for_ajaximations
|
||||
keep_trying_until { expect(fj("#edit_content_dialog")).to be_displayed }
|
||||
end
|
||||
|
||||
def switch_html_edit_views
|
||||
fj('.switch_views:visible').click
|
||||
end
|
||||
|
||||
def save_html_content
|
||||
f(".ui-dialog .btn-primary").click
|
||||
end
|
||||
|
||||
it "should allow you to edit html files" do
|
||||
current_content = File.read(fixture_file_path("files/html-editing-test.html"))
|
||||
4.times do
|
||||
new_content = "<html>#{SecureRandom.hex(10)}</html>"
|
||||
click_edit_link
|
||||
keep_trying_until(120) { driver.execute_script("return $('#edit_content_textarea')[0].value;") == current_content }
|
||||
driver.execute_script("$('#edit_content_textarea')[0].value = '#{new_content}';")
|
||||
current_content = new_content
|
||||
f(".ui-dialog .btn-primary").click
|
||||
expect(f("#edit_content_dialog")).not_to be_displayed
|
||||
end
|
||||
end
|
||||
|
||||
it "should validate adding a bold line changes the html" do
|
||||
click_edit_link
|
||||
wait_for_ajaximations
|
||||
switch_html_edit_views
|
||||
f('.mce-i-bold').click
|
||||
type_in_tiny('#edit_content_textarea', 'this is bold')
|
||||
fj('.switch_views:visible').click
|
||||
expect(driver.execute_script("return $('#edit_content_textarea')[0].value;")).to match /<strong>this is bold<\/strong>/
|
||||
driver.execute_script("return $('#edit_content_textarea')[0].value = '<fake>lol</fake>';")
|
||||
fj('.switch_views:visible').click
|
||||
fj('.switch_views:visible').click
|
||||
expect(driver.execute_script("return $('#edit_content_textarea')[0].value;")).to match /<fake>lol<\/fake>/
|
||||
end
|
||||
|
||||
it "should save changes from HTML view" do
|
||||
click_edit_link
|
||||
wait_for_ajaximations
|
||||
switch_html_edit_views
|
||||
type_in_tiny('#edit_content_textarea', 'I am typing')
|
||||
save_html_content
|
||||
wait_for_ajaximations
|
||||
click_edit_link
|
||||
keep_trying_until { expect(f('#edit_content_textarea')[:value]).to match /I am typing/ }
|
||||
end
|
||||
|
||||
it "should save changes from code view" do
|
||||
click_edit_link
|
||||
wait_for_ajaximations
|
||||
driver.execute_script("$('#edit_content_textarea')[0].value = 'I am typing';")
|
||||
wait_for_ajaximations
|
||||
save_html_content
|
||||
wait_for_ajaximations
|
||||
click_edit_link
|
||||
wait_for_ajaximations
|
||||
keep_trying_until { expect(f('#edit_content_textarea')[:value]).to match /I am typing/ }
|
||||
end
|
||||
|
||||
it "should allow you to open and close the dialog and switch views" do
|
||||
click_edit_link
|
||||
keep_trying_until { expect(driver.execute_script("return $('#edit_content_textarea').is(':visible');")).to eq true }
|
||||
switch_html_edit_views
|
||||
expect(driver.execute_script("return $('#edit_content_textarea').is(':hidden');")).to eq true
|
||||
close_visible_dialog
|
||||
click_edit_link(false)
|
||||
keep_trying_until { expect(driver.execute_script("return $('#edit_content_textarea').is(':visible');")).to eq true }
|
||||
switch_html_edit_views
|
||||
expect(driver.execute_script("return $('#edit_content_textarea').is(':hidden');")).to eq true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "files S3 tests" do
|
||||
before do
|
||||
s3_storage!
|
||||
end
|
||||
|
||||
it "should make folders in the menu droppable s3" do
|
||||
should_make_folders_in_the_menu_droppable
|
||||
end
|
||||
|
||||
it "should show students link to download zip of folder s3" do
|
||||
should_show_students_link_to_download_zip_of_folder
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe "zip file uploads" do
|
||||
include_examples "in-process server selenium tests"
|
||||
|
||||
context "courses" do
|
||||
before do
|
||||
course_with_teacher_logged_in
|
||||
@files_url = "/courses/#{@course.id}/files"
|
||||
@files_import_url = "/courses/#{@course.id}/imports/files"
|
||||
@context = @course
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from the form courses" do
|
||||
unzip_from_form_to_folder
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from drag-and-drop courses" do
|
||||
skip("drag and drop issues")
|
||||
get @files_url
|
||||
next unless driver.execute_script("return $.handlesHTML5Files;") == true
|
||||
unzip_into_folder_drag_and_drop
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context "groups" do
|
||||
before do
|
||||
group_with_user_logged_in(:group_context => course)
|
||||
@files_url = "/groups/#{@group.id}/files"
|
||||
@files_import_url = "/groups/#{@group.id}/imports/files"
|
||||
@context = @group
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from the form groups" do
|
||||
unzip_from_form_to_folder
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from drag-and-drop groups" do
|
||||
get @files_url
|
||||
next unless driver.execute_script("return $.handlesHTML5Files;") == true
|
||||
unzip_into_folder_drag_and_drop
|
||||
end
|
||||
end
|
||||
|
||||
context "user" do
|
||||
before do
|
||||
course_with_student_logged_in
|
||||
@files_url = "/files"
|
||||
@files_import_url = "/users/#{@user.id}/imports/files"
|
||||
@context = @user
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from the form profile" do
|
||||
unzip_from_form_to_folder
|
||||
end
|
||||
|
||||
it "should allow unzipping into a folder from drag-and-drop profile" do
|
||||
get @files_url
|
||||
next unless driver.execute_script("return $.handlesHTML5Files;") == true
|
||||
unzip_into_folder_drag_and_drop
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,227 +0,0 @@
|
|||
require File.expand_path(File.dirname(__FILE__) + '/common')
|
||||
require File.expand_path(File.dirname(__FILE__) + '/helpers/files_common')
|
||||
|
||||
describe "files" do
|
||||
def add_folders(name = 'new folder', number_to_add = 1)
|
||||
1..number_to_add.times do |number|
|
||||
keep_trying_until do
|
||||
f(".add_folder_link").click
|
||||
wait_for_ajaximations
|
||||
expect(f("#files_content .add_folder_form #folder_name")).to be_displayed
|
||||
end
|
||||
new_folder = f("#files_content .add_folder_form #folder_name")
|
||||
wait_for_ajaximations
|
||||
new_folder.send_keys(name)
|
||||
wait_for_ajaximations
|
||||
new_folder.send_keys(:return)
|
||||
wait_for_ajaximations
|
||||
end
|
||||
end
|
||||
|
||||
def make_folder_actions_visible
|
||||
driver.execute_script("$('.folder_item').addClass('folder_item_hover')")
|
||||
end
|
||||
|
||||
def attach_file(file_fullpath)
|
||||
attachment_field = keep_trying_until do
|
||||
driver.execute_script "$('.add_file_link').click()"
|
||||
wait_for_ajaximations
|
||||
attachment_field = fj('#attachment_uploaded_data')
|
||||
expect(attachment_field).to be_displayed
|
||||
attachment_field
|
||||
end
|
||||
attachment_field.send_keys(file_fullpath)
|
||||
wait_for_ajaximations
|
||||
f('.add_file_form').submit
|
||||
wait_for_ajaximations
|
||||
wait_for_js
|
||||
end
|
||||
|
||||
def get_file_elements
|
||||
file_elements = keep_trying_until do
|
||||
file_elements = ffj('#files_structure_list > .context > ul > .file > .name')
|
||||
expect(file_elements.count).to eq 3
|
||||
file_elements
|
||||
end
|
||||
file_elements
|
||||
end
|
||||
|
||||
def file_setup
|
||||
sleep 5
|
||||
@a_filename, a_fullpath, _, @a_tempfile = get_file("a_file.txt")
|
||||
@b_filename, b_fullpath, _, @b_tempfile = get_file("b_file.txt")
|
||||
@c_filename, c_fullpath, _, @c_tempfile = get_file("c_file.txt")
|
||||
|
||||
attach_file(a_fullpath)
|
||||
attach_file(c_fullpath)
|
||||
attach_file(b_fullpath)
|
||||
end
|
||||
|
||||
describe "common file behaviors" do
|
||||
include_examples "in-process server selenium tests"
|
||||
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
get "/files"
|
||||
end
|
||||
|
||||
context "when creating new folders" do
|
||||
let(:folder_a_name) { "a_folder" }
|
||||
let(:folder_b_name) { "b_folder" }
|
||||
let(:folder_c_name) { "c_folder" }
|
||||
|
||||
before(:each) do
|
||||
add_folders(folder_b_name)
|
||||
add_folders(folder_a_name)
|
||||
add_folders(folder_c_name)
|
||||
end
|
||||
|
||||
it "orders file structure folders alphabetically" do
|
||||
folder_elements = ff('#files_structure_list > .context > ul > .node.folder > .name')
|
||||
|
||||
expect(folder_elements[0].text).to eq folder_a_name
|
||||
expect(folder_elements[1].text).to eq folder_b_name
|
||||
expect(folder_elements[2].text).to eq folder_c_name
|
||||
end
|
||||
|
||||
it "orders file content folders alphabetically" do
|
||||
folder_elements = ff('#files_content > .folder_item.folder > .header > .name')
|
||||
|
||||
expect(folder_elements[0].text).to eq folder_a_name
|
||||
expect(folder_elements[1].text).to eq folder_b_name
|
||||
expect(folder_elements[2].text).to eq folder_c_name
|
||||
end
|
||||
end
|
||||
|
||||
context "when creating new files" do
|
||||
|
||||
it "should order file structure files alphabetically" do
|
||||
file_setup
|
||||
file_elements = get_file_elements
|
||||
|
||||
expect(file_elements[0].text).to eq @a_filename
|
||||
expect(file_elements[1].text).to eq @b_filename
|
||||
expect(file_elements[2].text).to eq @c_filename
|
||||
end
|
||||
end
|
||||
|
||||
context "letter casing" do
|
||||
|
||||
def add_multiple_folders(folder_names)
|
||||
folder_names.each { |name| add_folders(name) }
|
||||
ff('#files_content .folder')
|
||||
end
|
||||
|
||||
it "should ignore file name case when alphabetizing" do
|
||||
amazing_filename, amazing_fullpath, _, amazing_tempfile = get_file("amazing_file.txt")
|
||||
dog_filename, dog_fullpath, _, dog_tempfile = get_file("Dog_file.txt")
|
||||
file_paths = [dog_fullpath, amazing_fullpath]
|
||||
file_paths.each do
|
||||
|name| attach_file(name)
|
||||
wait_for_ajaximations
|
||||
end
|
||||
files = ff('#files_content .file')
|
||||
expect(files.first).to include_text('amazing')
|
||||
expect(files.last).to include_text('Dog')
|
||||
end
|
||||
|
||||
it "should ignore folder name case when alphabetizing" do
|
||||
folder_names = %w(amazing Dog)
|
||||
folders = add_multiple_folders(folder_names)
|
||||
expect(folders.first).to include_text(folder_names[0])
|
||||
expect(folders.last).to include_text(folder_names[1])
|
||||
end
|
||||
|
||||
it "should ignore mixed-casing when adding new folders" do
|
||||
folder_names = %w(ZeEDeE CoOlEst)
|
||||
folders = add_multiple_folders(folder_names)
|
||||
expect(folders.first).to include_text(folder_names[1])
|
||||
expect(folders.last).to include_text(folder_names[0])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "files without s3 and forked tests" do
|
||||
include_examples "in-process server selenium tests"
|
||||
|
||||
before (:each) do
|
||||
@folder_name = "my folder"
|
||||
course_with_teacher_logged_in
|
||||
get "/files"
|
||||
wait_for_ajaximations
|
||||
add_folders(@folder_name)
|
||||
wait_for_ajaximations
|
||||
expect(Folder.last.name).to eq @folder_name
|
||||
@folder_css = ".folder_#{Folder.last.id}"
|
||||
make_folder_actions_visible
|
||||
end
|
||||
|
||||
it "should allow renaming folders" do
|
||||
edit_folder_name = "my folder 2"
|
||||
entry_field = keep_trying_until do
|
||||
f("#files_content .folder_item .rename_item_link").click
|
||||
wait_for_ajaximations
|
||||
entry_field = f("#files_content #rename_entry_field")
|
||||
expect(entry_field).to be_displayed
|
||||
entry_field
|
||||
end
|
||||
wait_for_ajaximations
|
||||
entry_field.send_keys(edit_folder_name)
|
||||
wait_for_ajaximations
|
||||
entry_field.send_keys(:return)
|
||||
wait_for_ajaximations
|
||||
expect(Folder.last.name).to eq edit_folder_name
|
||||
end
|
||||
|
||||
it "should allow deleting a folder" do
|
||||
f(@folder_css + ' .delete_item_link').click
|
||||
driver.switch_to.alert.accept
|
||||
wait_for_ajaximations
|
||||
expect(Folder.last.workflow_state).to eq 'deleted'
|
||||
expect(f('#files_content')).not_to include_text(@folder_name)
|
||||
end
|
||||
|
||||
it "should allow locking a folder" do
|
||||
f(@folder_css + ' .lock_item_link').click
|
||||
lock_form = f('#lock_folder_form')
|
||||
expect(lock_form).to be_displayed
|
||||
submit_form(lock_form)
|
||||
wait_for_ajaximations
|
||||
expect(f(@folder_css + ' .header img')).to have_attribute('alt', 'Locked Folder')
|
||||
expect(Folder.last.locked).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
describe "course files" do
|
||||
include_examples "in-process server selenium tests"
|
||||
|
||||
it "should not show root folder files in the collaborations folder when there is a collaboration" do
|
||||
course_with_teacher_logged_in
|
||||
|
||||
f = Folder.root_folders(@course).first
|
||||
a = f.active_file_attachments.build
|
||||
a.context = @course
|
||||
a.uploaded_data = default_uploaded_data
|
||||
a.save!
|
||||
|
||||
PluginSetting.create!(:name => 'etherpad', :settings => {})
|
||||
|
||||
@collaboration = Collaboration.typed_collaboration_instance('EtherPad')
|
||||
@collaboration.context = @course
|
||||
@collaboration.attributes = { :title => 'My collaboration',
|
||||
:user => @teacher }
|
||||
@collaboration.save!
|
||||
|
||||
get "/courses/#{@course.id}/files"
|
||||
wait_for_ajaximations
|
||||
|
||||
file_elements = keep_trying_until do
|
||||
file_elements = ffj('#files_structure_list > .context > ul > .file > .name')
|
||||
expect(file_elements.count).to eq 1
|
||||
file_elements
|
||||
end
|
||||
|
||||
expect(file_elements.first.text).to eq a.name
|
||||
end
|
||||
end
|
||||
end
|
|
@ -5,9 +5,8 @@ describe "better_file_browsing, folders" do
|
|||
include_examples "in-process server selenium tests"
|
||||
|
||||
context "Folders" do
|
||||
before (:each) do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
get "/courses/#{@course.id}/files"
|
||||
folder_name = "new test folder"
|
||||
add_folder(folder_name)
|
||||
|
@ -82,9 +81,8 @@ describe "better_file_browsing, folders" do
|
|||
end
|
||||
|
||||
context "Folder Tree" do
|
||||
before (:each) do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
get "/courses/#{@course.id}/files"
|
||||
end
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ describe "better_file_browsing" do
|
|||
context "As a teacher", priority: 1 do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
add_file(fixture_file_upload('files/example.pdf', 'application/pdf'),
|
||||
@course, "example.pdf")
|
||||
get "/courses/#{@course.id}/files"
|
||||
|
@ -84,7 +83,6 @@ describe "better_file_browsing" do
|
|||
context "Search textbox" do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
txt_files = ["a_file.txt", "b_file.txt", "c_file.txt"]
|
||||
txt_files.map do |text_file|
|
||||
add_file(fixture_file_upload("files/#{text_file}", 'text/plain'), @course, text_file)
|
||||
|
@ -106,7 +104,6 @@ describe "better_file_browsing" do
|
|||
context "Move dialog" do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
txt_files = ["a_file.txt", "b_file.txt"]
|
||||
txt_files.map { |text_file| add_file(fixture_file_upload("files/#{text_file}", 'text/plain'), @course, text_file) }
|
||||
get "/courses/#{@course.id}/files"
|
||||
|
@ -154,7 +151,6 @@ describe "better_file_browsing" do
|
|||
context "Publish Cloud Dialog" do
|
||||
before(:each) do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
add_file(fixture_file_upload('files/a_file.txt', 'text/plain'),
|
||||
@course, "a_file.txt")
|
||||
get "/courses/#{@course.id}/files"
|
||||
|
@ -194,7 +190,6 @@ describe "better_file_browsing" do
|
|||
|
||||
before :each do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
Account.default.enable_feature!(:usage_rights_required)
|
||||
add_file(fixture_file_upload('files/a_file.txt', 'text/plan'),
|
||||
@course, "a_file.txt")
|
||||
|
@ -247,7 +242,6 @@ describe "better_file_browsing" do
|
|||
|
||||
before :each do
|
||||
course_with_teacher_logged_in
|
||||
Account.default.enable_feature!(:better_file_browsing)
|
||||
Account.default.enable_feature!(:usage_rights_required)
|
||||
add_file(fixture_file_upload('files/a_file.txt', 'text/plan'),
|
||||
@course, "a_file.txt")
|
||||
|
|
|
@ -25,7 +25,7 @@ describe "public courses" do
|
|||
|
||||
it "should display course files" do
|
||||
get "/courses/#{public_course.id}/files"
|
||||
expect(f('#files_structure_list')).to be_displayed
|
||||
expect(f('div.ef-main[data-reactid]')).to be_displayed
|
||||
end
|
||||
|
||||
it "should display course syllabus" do
|
||||
|
@ -81,17 +81,6 @@ describe "public courses" do
|
|||
ensure_logged_out
|
||||
end
|
||||
|
||||
context 'with draft state disabled' do
|
||||
let!(:public_course) do
|
||||
course(active_course: true)
|
||||
@course.is_public = true
|
||||
@course.save!
|
||||
@course
|
||||
end
|
||||
|
||||
include_examples 'a public course'
|
||||
end
|
||||
|
||||
context 'with draft state enabled' do
|
||||
let!(:public_course) do
|
||||
course(active_course: true)
|
||||
|
|
Loading…
Reference in New Issue