Skip to content

Commit

Permalink
Tests for Cloud and Fragment View
Browse files Browse the repository at this point in the history
  • Loading branch information
Arnaud9145 committed Jun 21, 2019
1 parent ba256e8 commit ebe7b6c
Show file tree
Hide file tree
Showing 11 changed files with 411 additions and 148 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
node_modules
package-lock.json
Gemfile.lock
.idea

# production
build
Expand Down
5 changes: 1 addition & 4 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
source "https://rubygems.org"

gem "cucumber"
gem "rspec"
gem "capybara"
gem "selenium-webdriver"
gem "chromedriver-helper", "~>1.2"
gem "cuprite"
33 changes: 33 additions & 0 deletions features/display_topics_to_cloud_mode.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#language: fr

Fonctionnalité: Afficher la vue nuage de mot pour les catégories

Contexte:

Soit le corpus "enseignants-décrocheurs" rattaché au portfolio "alice"

Soit l'item "David1" rattaché au corpus "enseignants-décrocheurs"
Soit l'item "David2" rattaché au corpus "enseignants-décrocheurs"
Soit l'item "Karine" rattaché au corpus "enseignants-décrocheurs"

Soit le point de vue "Grille d'analyse du SI" rattaché au portfolio "alice"
Soit la rubrique "Action" rattachée au point de vue "Grille d'analyse du SI"
Soit la rubrique "Acteur" rattachée au point de vue "Grille d'analyse du SI"

Soit le fragment "regarder la télévision" contenu dans la rubrique "Action"
Soit le fragment "mes collègues" contenu dans la rubrique "Acteur"

Soit les rubriques affichées en liste

Scénario: Switcher vers la vue nuage de mots

Soit "alice" le portfolio ouvert
Quand un visiteur change de vue vers nuage de mots
Alors la rubrique "Action" est plus grosse que "Acteur"

Scénario: Sélectionner une catégorie du nuage de mot

Soit "alice" le portfolio ouvert
Et la vue nuage de mot est séléctionnée
Quand un visiteur séléctionne la rubrique "Action"
Alors la rubrique "Action" est surlignée
28 changes: 28 additions & 0 deletions features/fragment_consult.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#language: fr

Fonctionnalité: Consulter les items en mode fragment

Contexte:
Soit le corpus "enseignants-decrocheurs" rattaché au portfolio "alice"

Soit l'item "David1" rattaché au corpus "enseignants-decrocheurs"
Soit l'item "David2" rattaché au corpus "enseignants-decrocheurs"
Soit l'item "Karine" rattaché au corpus "enseignants-decrocheurs"

Soit le point de vue "Sociologie de la douleur" rattaché à l'item "David1"
Soit la catégorie "souffrir de plus en plus" rattaché au point de vue "Sociologie de la douleur"
Soit le fragment "Quand je suis rentré comme professeur, j'étais un h" rattaché à la catégorie "souffrir de plus en plus"

Scénario: Afficher la liste des items
Soit "alice" le portfolio ouvert
Alors il doit y avoir au moins 3 items affichés
Et l'item "David1" est décrit par une date
Et l'item "David1" est décrit par un auteur

Scénario: Afficher les fragments associé à l'item "David1"
Soit "alice" le portfolio ouvert
Et l'item "David1" est affiché
Quand l'item "David1" est selectionné
Alors la catégorie "souffrir de plus en plus" est affiché
Et le fragment "Quand je suis rentré comme professeur, j'étais un h" est affiché
Et le lien vers le texte associé au fragment "Quand je suis rentré comme professeur, j'étais un h" est affiché
22 changes: 22 additions & 0 deletions features/images_appartient_rubrique.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#language: fr

Fonctionnalité: Vérifier toutes les images appartiennent bien à une rubrique

Contexte:
Soit le point de vue "Histoire de l'art" rattaché au portfolio "vitraux"
Soit le corpus "Vitraux - Bénel" rattaché au portfolio "vitraux"
Soit le corpus "Vitraux - Recensement" rattaché au portfolio "vitraux"

Soit la rubrique "Artiste" rattachée au point de vue "Histoire de l'art"
Soit la rubrique "Édouard-Amédée Didron" contenue dans la rubrique "Artiste"
Soit la rubrique "Hugot" contenue dans la rubrique "Artiste"

Scénario: quand la rubrique ne contient pas d'élement
Soit la rubrique "Artiste" sélectionnée et dévellopée
Quand la rubrique "Hugot" est sélectionnée
Alors l'emplacement des items est vide

Scénario: quand la rubrique contient des élements
Soit la rubrique "Artiste" sélectionnée et dévellopée
Quand la rubrique "Édouard-Amédée Didron" est sélectionnée
Alors tous les items sont affichés et doivent appartenir à la rubrique "Édouard-Amédée Didron"
62 changes: 62 additions & 0 deletions features/step_definitions/fragment.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
require 'capybara/cucumber'
require 'selenium/webdriver'

Capybara.run_server = false
Capybara.default_driver = :selenium_chrome_headless
Capybara.app_host = "http://localhost:3000"
Capybara.default_max_wait_time = 10

# Conditions

Soit("l'item {string} rattaché au corpus {string}") do |string, string2|
# On the remote servers
end

Soit("le point de vue {string} rattaché à l'item {string}") do |string, string2|
# On the remote servers
end

Soit("la catégorie {string} rattaché au point de vue {string}") do |string, string2|
# On the remote servers
end

Soit("le fragment {string} rattaché à la catégorie {string}") do |string, string2|
# On the remote servers
end

Alors("il doit y avoir au moins {int} items affichés") do |int|
expect(page).to have_selector('.Items .item', count: int)
end

Alors("l'item {string} est décrit par une date") do |item|
node = find('.Items .item .name', text: item)
parent = node.find(:xpath, '..')
expect(parent).to have_selector('.date')
end

Alors("l'item {string} est décrit par un auteur") do |item|
node = find('.Items .item .name', text: item)
parent = node.find(:xpath, '..')
expect(parent).to have_selector('.author')
end

# Events

Quand("l'item {string} est selectionné") do |item|
find('.item', text: item).click
expect(page).to have_selector('.textSelected')
end

# Outcomes

Alors("la catégorie {string} est affiché") do |category|
expect(page).to have_content category
end

Alors("le fragment {string} est affiché") do |fragment|
expect(page).to have_content fragment
end

Alors("le lien vers le texte associé au fragment {string} est affiché") do |fragment|
expect(find('p', exact_text: fragment)).to have_selector('a')
end
52 changes: 52 additions & 0 deletions features/step_definitions/images_appartient_rubrique.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
require 'capybara/cucumber'
require 'selenium/webdriver'

Capybara.run_server = false
Capybara.default_driver = :selenium_chrome_headless
Capybara.app_host = "http://localhost:3000"
Capybara.default_max_wait_time = 10

def getUUID2(itemName)
uuid = nil
case itemName
when "Hugot"
uuid = "8c4b184d5d6b0f40919f690f1f6ca7f5"
when "Édouard-Amédée Didron"
uuid = "8f57e7ea7d7b804a9fef571018e6384b"
end
return uuid
end

# Conditions

Soit("la rubrique {string} rattaché au point de vue {string}") do |topic3, topic1|
# On the remote servers
# topic3 is "Hugot"
end


Soit("la rubrique {string} sélectionnée et dévellopée") do |topic1|
visit "/"
end

Quand("la rubrique {string} est sélectionnée") do |topic3|
visit "/?t=#{getUUID2(topic3)}"
#je veux utiliser la fonction getUUID, mais il retourne nil. Donc je donne une variable fixe pour tester.
end


Alors("l'emplacement des items est vide") do
expect(page).not_to have_selector('.Item')
end

Alors("tous les items sont affichés et doivent appartenir à la rubrique {string}") do |topic3|
links =[]
all('.Item').each{
|a| links += [a.find('a')[:href]]
}
for link in links
visit link
expect(page).to have_content topic3
end
end

6 changes: 3 additions & 3 deletions features/step_definitions/item.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
require 'capybara/cucumber'
require 'selenium/webdriver'
require 'capybara/cuprite'

Capybara.run_server = false
Capybara.default_driver = :selenium_chrome_headless
Capybara.default_driver = :cuprite
Capybara.javascript_driver = :cuprite
Capybara.app_host = "http://localhost:3000"
Capybara.default_max_wait_time = 10

Expand Down Expand Up @@ -32,4 +33,3 @@
Alors("une des rubriques de l'item est {string}") do |topic|
expect(page).to have_content(topic)
end

Loading

0 comments on commit ebe7b6c

Please sign in to comment.