Skip to content

Commit da07949

Browse files
author
Arnaud9145
committed
Cloud and Fragment view
1 parent 745c4a5 commit da07949

26 files changed

Lines changed: 1422 additions & 582 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
node_modules
55
package-lock.json
66
Gemfile.lock
7+
.idea
78

89
# production
910
build

Gemfile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
source "https://rubygems.org"
22

33
gem "cucumber"
4-
gem "rspec"
5-
gem "capybara"
6-
gem "selenium-webdriver"
7-
gem "chromedriver-helper", "~>1.2"
4+
gem "cuprite"
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#language: fr
2+
3+
Fonctionnalité: Afficher la vue nuage de mot pour les catégories
4+
5+
Contexte:
6+
7+
Soit le corpus "enseignants-décrocheurs" rattaché au portfolio "alice"
8+
9+
Soit l'item "David1" rattaché au corpus "enseignants-décrocheurs"
10+
Soit l'item "David2" rattaché au corpus "enseignants-décrocheurs"
11+
Soit l'item "Karine" rattaché au corpus "enseignants-décrocheurs"
12+
13+
Soit le point de vue "Grille d'analyse du SI" rattaché au portfolio "alice"
14+
Soit la rubrique "Action" rattachée au point de vue "Grille d'analyse du SI"
15+
Soit la rubrique "Acteur" rattachée au point de vue "Grille d'analyse du SI"
16+
17+
Soit le fragment "regarder la télévision" contenu dans la rubrique "Action"
18+
Soit le fragment "mes collègues" contenu dans la rubrique "Acteur"
19+
20+
Soit les rubriques affichées en liste
21+
22+
Scénario: Switcher vers la vue nuage de mots
23+
24+
Soit "alice" le portfolio ouvert
25+
Quand un visiteur change de vue vers nuage de mots
26+
Alors la rubrique "Action" est plus grosse que "Acteur"
27+
28+
Scénario: Sélectionner une catégorie du nuage de mot
29+
30+
Soit "alice" le portfolio ouvert
31+
Et la vue nuage de mot est séléctionnée
32+
Quand un visiteur séléctionne la rubrique "Action"
33+
Alors la rubrique "Action" est surlignée

features/fragment_consult.feature

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#language: fr
2+
3+
Fonctionnalité: Consulter les items en mode fragment
4+
5+
Contexte:
6+
Soit le corpus "enseignants-decrocheurs" rattaché au portfolio "alice"
7+
8+
Soit l'item "David1" rattaché au corpus "enseignants-decrocheurs"
9+
Soit l'item "David2" rattaché au corpus "enseignants-decrocheurs"
10+
Soit l'item "Karine" rattaché au corpus "enseignants-decrocheurs"
11+
12+
Soit le point de vue "Sociologie de la douleur" rattaché à l'item "David1"
13+
Soit la catégorie "souffrir de plus en plus" rattaché au point de vue "Sociologie de la douleur"
14+
Soit le fragment "Quand je suis rentré comme professeur, j'étais un h" rattaché à la catégorie "souffrir de plus en plus"
15+
16+
Scénario: Afficher la liste des items
17+
Soit "alice" le portfolio ouvert
18+
Alors il doit y avoir au moins 3 items affichés
19+
Et l'item "David1" est décrit par une date
20+
Et l'item "David1" est décrit par un auteur
21+
22+
Scénario: Afficher les fragments associé à l'item "David1"
23+
Soit "alice" le portfolio ouvert
24+
Et l'item "David1" est affiché
25+
Quand l'item "David1" est selectionné
26+
Alors la catégorie "souffrir de plus en plus" est affiché
27+
Et le fragment "Quand je suis rentré comme professeur, j'étais un h" est affiché
28+
Et le lien vers le texte associé au fragment "Quand je suis rentré comme professeur, j'étais un h" est affiché
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#language: fr
2+
3+
Fonctionnalité: Vérifier toutes les images appartiennent bien à une rubrique
4+
5+
Contexte:
6+
Soit le point de vue "Histoire de l'art" rattaché au portfolio "vitraux"
7+
Soit le corpus "Vitraux - Bénel" rattaché au portfolio "vitraux"
8+
Soit le corpus "Vitraux - Recensement" rattaché au portfolio "vitraux"
9+
10+
Soit la rubrique "Artiste" rattachée au point de vue "Histoire de l'art"
11+
Soit la rubrique "Édouard-Amédée Didron" contenue dans la rubrique "Artiste"
12+
Soit la rubrique "Hugot" contenue dans la rubrique "Artiste"
13+
14+
Scénario: quand la rubrique ne contient pas d'élement
15+
Soit la rubrique "Artiste" sélectionnée et dévellopée
16+
Quand la rubrique "Hugot" est sélectionnée
17+
Alors l'emplacement des items est vide
18+
19+
Scénario: quand la rubrique contient des élements
20+
Soit la rubrique "Artiste" sélectionnée et dévellopée
21+
Quand la rubrique "Édouard-Amédée Didron" est sélectionnée
22+
Alors tous les items sont affichés et doivent appartenir à la rubrique "Édouard-Amédée Didron"
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
require 'capybara/cucumber'
2+
require 'selenium/webdriver'
3+
4+
Capybara.run_server = false
5+
Capybara.default_driver = :selenium_chrome_headless
6+
Capybara.app_host = "http://localhost:3000"
7+
Capybara.default_max_wait_time = 10
8+
9+
# Conditions
10+
11+
Soit("l'item {string} rattaché au corpus {string}") do |string, string2|
12+
# On the remote servers
13+
end
14+
15+
Soit("le point de vue {string} rattaché à l'item {string}") do |string, string2|
16+
# On the remote servers
17+
end
18+
19+
Soit("la catégorie {string} rattaché au point de vue {string}") do |string, string2|
20+
# On the remote servers
21+
end
22+
23+
Soit("le fragment {string} rattaché à la catégorie {string}") do |string, string2|
24+
# On the remote servers
25+
end
26+
27+
Alors("il doit y avoir au moins {int} items affichés") do |int|
28+
expect(page).to have_selector('.Items .item', count: int)
29+
end
30+
31+
Alors("l'item {string} est décrit par une date") do |item|
32+
node = find('.Items .item .name', text: item)
33+
parent = node.find(:xpath, '..')
34+
expect(parent).to have_selector('.date')
35+
end
36+
37+
Alors("l'item {string} est décrit par un auteur") do |item|
38+
node = find('.Items .item .name', text: item)
39+
parent = node.find(:xpath, '..')
40+
expect(parent).to have_selector('.author')
41+
end
42+
43+
# Events
44+
45+
Quand("l'item {string} est selectionné") do |item|
46+
find('.item', text: item).click
47+
expect(page).to have_selector('.textSelected')
48+
end
49+
50+
# Outcomes
51+
52+
Alors("la catégorie {string} est affiché") do |category|
53+
expect(page).to have_content category
54+
end
55+
56+
Alors("le fragment {string} est affiché") do |fragment|
57+
expect(page).to have_content fragment
58+
end
59+
60+
Alors("le lien vers le texte associé au fragment {string} est affiché") do |fragment|
61+
expect(find('p', exact_text: fragment)).to have_selector('a')
62+
end
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
require 'capybara/cucumber'
2+
require 'selenium/webdriver'
3+
4+
Capybara.run_server = false
5+
Capybara.default_driver = :selenium_chrome_headless
6+
Capybara.app_host = "http://localhost:3000"
7+
Capybara.default_max_wait_time = 10
8+
9+
def getUUID2(itemName)
10+
uuid = nil
11+
case itemName
12+
when "Hugot"
13+
uuid = "8c4b184d5d6b0f40919f690f1f6ca7f5"
14+
when "Édouard-Amédée Didron"
15+
uuid = "8f57e7ea7d7b804a9fef571018e6384b"
16+
end
17+
return uuid
18+
end
19+
20+
# Conditions
21+
22+
Soit("la rubrique {string} rattaché au point de vue {string}") do |topic3, topic1|
23+
# On the remote servers
24+
# topic3 is "Hugot"
25+
end
26+
27+
28+
Soit("la rubrique {string} sélectionnée et dévellopée") do |topic1|
29+
visit "/"
30+
end
31+
32+
Quand("la rubrique {string} est sélectionnée") do |topic3|
33+
visit "/?t=#{getUUID2(topic3)}"
34+
#je veux utiliser la fonction getUUID, mais il retourne nil. Donc je donne une variable fixe pour tester.
35+
end
36+
37+
38+
Alors("l'emplacement des items est vide") do
39+
expect(page).not_to have_selector('.Item')
40+
end
41+
42+
Alors("tous les items sont affichés et doivent appartenir à la rubrique {string}") do |topic3|
43+
links =[]
44+
all('.Item').each{
45+
|a| links += [a.find('a')[:href]]
46+
}
47+
for link in links
48+
visit link
49+
expect(page).to have_content topic3
50+
end
51+
end
52+

features/step_definitions/item.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require 'capybara/cucumber'
2-
require 'selenium/webdriver'
2+
require 'capybara/cuprite'
33

44
Capybara.run_server = false
5-
Capybara.default_driver = :selenium_chrome_headless
5+
Capybara.default_driver = :cuprite
6+
Capybara.javascript_driver = :cuprite
67
Capybara.app_host = "http://localhost:3000"
78
Capybara.default_max_wait_time = 10
89

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

0 commit comments

Comments
 (0)