summaryrefslogtreecommitdiff
path: root/spec/features/projects/user_uses_shortcuts_spec.rb
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2017-09-25 15:42:34 +0800
committerLin Jen-Shin <godfat@godfat.org>2017-09-25 15:42:34 +0800
commit239332eed3fa870fd41be83864882c0f389840d8 (patch)
treea81aba7617f391f9cb4a67339faa9de67b4426d3 /spec/features/projects/user_uses_shortcuts_spec.rb
parent961b0849e5098dae74050f6c49ebf3011ce072b7 (diff)
parent7da72a0de296e430378c7eb85fc486a01f3163bd (diff)
downloadgitlab-ce-239332eed3fa870fd41be83864882c0f389840d8.tar.gz
Merge remote-tracking branch 'upstream/master' into no-ivar-in-modules
* upstream/master: (168 commits) Update CHANGELOG.md for 10.0.1 Remove Grit settings from default settings Fix duplicate key errors in PostDeployMigrateUserExternalMailData migration Workaround for #38259 Workaround for n+1 in Projects::TreeController#show Removed old icons from project page Make branches page translatable fix typo in icons section Don't show it if there's no project. Update CHANGELOG.md for 10.0.0 Inform user that current shared projects will remain shared Allow the git circuit breaker to correctly handle missing repository storages Reserve refs/replace cos `git-replace` is using it Resolve "Better SVG Usage in the Frontend" Replace the 'project/service.feature' spinach test with an rspec analog Replace the 'project/shortcuts.feature' spinach test with an rspec analog Removed two legacy config options Fix rendering double note issue. IssueNotes: Switch back to Write pane when note cancel or submit. Upgrade Nokogiri because of CVE-2017-9050 ...
Diffstat (limited to 'spec/features/projects/user_uses_shortcuts_spec.rb')
-rw-r--r--spec/features/projects/user_uses_shortcuts_spec.rb108
1 files changed, 108 insertions, 0 deletions
diff --git a/spec/features/projects/user_uses_shortcuts_spec.rb b/spec/features/projects/user_uses_shortcuts_spec.rb
new file mode 100644
index 00000000000..fb0d8c766fe
--- /dev/null
+++ b/spec/features/projects/user_uses_shortcuts_spec.rb
@@ -0,0 +1,108 @@
+require 'spec_helper'
+
+describe 'User uses shortcuts', :js do
+ let(:project) { create(:project, :repository) }
+ let(:user) { create(:user) }
+
+ before do
+ project.add_master(user)
+ sign_in(user)
+
+ visit(project_path(project))
+ end
+
+ context 'when navigating to the Overview pages' do
+ it 'redirects to the details page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('p')
+
+ expect(page).to have_active_navigation('Overview')
+ expect(page).to have_active_sub_navigation('Details')
+ end
+
+ it 'redirects to the activity page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('e')
+
+ expect(page).to have_active_navigation('Overview')
+ expect(page).to have_active_sub_navigation('Activity')
+ end
+ end
+
+ context 'when navigating to the Repository pages' do
+ it 'redirects to the repository files page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('f')
+
+ expect(page).to have_active_navigation('Repository')
+ expect(page).to have_active_sub_navigation('Files')
+ end
+
+ it 'redirects to the repository commits page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('c')
+
+ expect(page).to have_active_navigation('Repository')
+ expect(page).to have_active_sub_navigation('Commits')
+ end
+
+ it 'redirects to the repository graph page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('n')
+
+ expect(page).to have_active_navigation('Repository')
+ expect(page).to have_active_sub_navigation('Graph')
+ end
+
+ it 'redirects to the repository charts page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('d')
+
+ expect(page).to have_active_navigation('Repository')
+ expect(page).to have_active_sub_navigation('Charts')
+ end
+ end
+
+ context 'when navigating to the Issues pages' do
+ it 'redirects to the issues list page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('i')
+
+ expect(page).to have_active_navigation('Issues')
+ expect(page).to have_active_sub_navigation('List')
+ end
+
+ it 'redirects to the new issue page' do
+ find('body').native.send_key('i')
+
+ expect(page).to have_content(project.title)
+ end
+ end
+
+ context 'when navigating to the Merge Requests pages' do
+ it 'redirects to the merge requests page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('m')
+
+ expect(page).to have_active_navigation('Merge Requests')
+ end
+ end
+
+ context 'when navigating to the Snippets pages' do
+ it 'redirects to the snippets page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('s')
+
+ expect(page).to have_active_navigation('Snippets')
+ end
+ end
+
+ context 'when navigating to the Wiki pages' do
+ it 'redirects to the wiki page' do
+ find('body').native.send_key('g')
+ find('body').native.send_key('w')
+
+ expect(page).to have_active_navigation('Wiki')
+ end
+ end
+end