diff options
| author | Thibault Delavallée <tde@odoo.com> | 2019-09-11 12:36:14 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-09-11 12:39:26 +0000 |
| commit | c3b5f313072bec06809de89e18c13ee482f50a3c (patch) | |
| tree | 4cf1412d183deeb9cec70f63b91362e2a579a61c /addons | |
| parent | eebb8e1484f29f4ae54617b1043d38f0cc1dd32f (diff) | |
[FIX][IMP] website_slides: move youtube dependent tour in its own tour and test
Contacting youtube API sometimes fails making falsy red runbot. In this commit
we remove video from member tour so that it tests the interface. Some demo
slides with youtube video are added in another course and new test is added
that crawls that channel.
Task 2066565
closes odoo/odoo#36697
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website_slides/data/slide_channel_demo.xml | 10 | ||||
| -rw-r--r-- | addons/website_slides/data/slide_slide_demo.xml | 68 | ||||
| -rw-r--r-- | addons/website_slides/static/src/img/slide_demo_thumb_PYr1rK8pS30.jpg | bin | 0 -> 98901 bytes | |||
| -rw-r--r-- | addons/website_slides/static/src/img/slide_demo_wood_infographic_1.jpg | bin | 0 -> 364410 bytes | |||
| -rw-r--r-- | addons/website_slides/tests/test_ui_wslides.py | 19 | ||||
| -rw-r--r-- | addons/website_slides/tests/tours/slides_course_member.js | 24 | ||||
| -rw-r--r-- | addons/website_slides/tests/tours/slides_course_member_yt.js | 67 | ||||
| -rw-r--r-- | addons/website_slides/tests/tours/slides_tour_tools.js | 4 | ||||
| -rw-r--r-- | addons/website_slides/views/assets.xml | 1 |
9 files changed, 149 insertions, 44 deletions
diff --git a/addons/website_slides/data/slide_channel_demo.xml b/addons/website_slides/data/slide_channel_demo.xml index c8f85fe0bea..64fc0c979ab 100644 --- a/addons/website_slides/data/slide_channel_demo.xml +++ b/addons/website_slides/data/slide_channel_demo.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo><data noupdate="1"> + <!-- This channel will gain a forum --> <record id="slide_channel_demo_0_gard_0" model="slide.channel"> <field name="name">Basics of Gardening</field> <field name="user_id" ref="base.user_admin"/> @@ -37,6 +38,7 @@ <field name="create_date" eval="DateTime.now() - relativedelta(days=7)"/> </record> + <!-- This channel will gain a forum --> <record id="slide_channel_demo_2_gard2" model="slide.channel"> <field name="name">Trees, Wood and Gardens</field> <field name="user_id" ref="base.user_admin"/> @@ -65,7 +67,7 @@ <field name="promote_strategy">latest</field> <field name="is_published" eval="True"/> <field name="tag_ids" eval="[(5, 0), - (4, ref('website_slides.slide_channel_tag_level_intermediate')), + (4, ref('website_slides.slide_channel_tag_level_basic')), (4, ref('website_slides.slide_channel_tag_role_gardener')), (4, ref('website_slides.slide_channel_tag_role_carpenter')), (4, ref('website_slides.slide_channel_tag_role_furniture')), @@ -85,13 +87,14 @@ will learn the basics of wood characteristics.</field> <field name="promote_strategy">most_voted</field> <field name="is_published" eval="True"/> <field name="tag_ids" eval="[(5, 0), - (4, ref('website_slides.slide_channel_tag_level_basic')), + (4, ref('website_slides.slide_channel_tag_level_intermediate')), (4, ref('website_slides.slide_channel_tag_role_furniture'))]"/> <field name="image_1920" type="base64" file="website_slides/static/src/img/channel_demo_furniture.jpg"/> <field name="description">If you are looking for technical specifications, have a look at this documentation.</field> <field name="create_date" eval="DateTime.now() - relativedelta(days=4)"/> </record> + <!-- This channel will gain a certification slide --> <record id="slide_channel_demo_5_furn2" model="slide.channel"> <field name="name">Basics of Furniture Creation</field> <field name="user_id" ref="base.user_admin"/> @@ -110,7 +113,8 @@ will learn the basics of wood characteristics.</field> <field name="create_date" eval="DateTime.now() - relativedelta(days=3)"/> </record> - <!-- This channel will be set on payment and receive certifications capabilities --> + <!-- This channel will be set on payment --> + <!-- This channel will gain a certification slide --> <record id="slide_channel_demo_6_furn3" model="slide.channel"> <field name="name">DIY Furniture</field> <field name="user_id" ref="base.user_admin"/> diff --git a/addons/website_slides/data/slide_slide_demo.xml b/addons/website_slides/data/slide_slide_demo.xml index 7944263aca7..233d6b7ddfb 100644 --- a/addons/website_slides/data/slide_slide_demo.xml +++ b/addons/website_slides/data/slide_slide_demo.xml @@ -43,26 +43,12 @@ <field name="tag_ids" eval="[(4, ref('website_slides.slide_tag_demo_colorful')), (4, ref('website_slides.slide_tag_demo_theory'))]"/> <field name="description">You won't believe those facts about carrots.</field> </record> - <record id="slide_slide_demo_0_2" model="slide.slide"> - <field name="name">Mighty Carrots</field> - <field name="sequence">3</field> - <field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_gardening_2.jpg"/> - <field name="slide_type">infographic</field> - <field name="channel_id" ref="website_slides.slide_channel_demo_0_gard_0"/> - <field name="is_published" eval="True"/> - <field name="is_preview" eval="False"/> - <field name="public_views">2</field> - <field name="completion_time">2</field> - <field name="tag_ids" eval="[(4, ref('website_slides.slide_tag_demo_colorful')), (4, ref('website_slides.slide_tag_demo_theory'))]"/> - <field name="description">You won't believe those facts about carrots.</field> - </record> <record id="slide_slide_demo_0_3" model="slide.slide"> - <field name="name">How to Grow and Harvest The Best Strawberries | Gardening Tips and Tricks</field> + <field name="name">How to Grow and Harvest The Best Strawberries | Basics</field> <field name="sequence">4</field> - <field name="url">https://www.youtube.com/watch?v=l0JZ25VvbwE</field> + <field name="datas" type="base64" file="website_slides/static/src/img/presentation.pdf"/> <field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_thumb_l0JZ25VvbwE.jpg"/> - <field name="document_id">l0JZ25VvbwE</field> - <field name="slide_type">video</field> + <field name="slide_type">document</field> <field name="channel_id" ref="website_slides.slide_channel_demo_0_gard_0"/> <field name="is_published" eval="True"/> <field name="is_preview" eval="False"/> @@ -305,6 +291,21 @@ <field name="tag_ids" eval="[(4, ref('website_slides.slide_tag_demo_howto'))]"/> <field name="description">A summary of know-how: how and what.</field> </record> + <record id="slide_slide_demo_1_6" model="slide.slide"> + <field name="name">How to Grow and Harvest The Best Strawberries | Gardening Tips and Tricks</field> + <field name="sequence">7</field> + <field name="url">https://www.youtube.com/watch?v=l0JZ25VvbwE</field> + <field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_thumb_l0JZ25VvbwE.jpg"/> + <field name="document_id">l0JZ25VvbwE</field> + <field name="slide_type">video</field> + <field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/> + <field name="is_published" eval="True"/> + <field name="is_preview" eval="False"/> + <field name="public_views">0</field> + <field name="completion_time">1</field> + <field name="tag_ids" eval="[(4, ref('website_slides.slide_tag_demo_howto'))]"/> + <field name="description">Here is How to get the Sweetest Strawberries you ever tasted!</field> + </record> <!-- CHANNEL 2: Trees, Wood and Garden --> <!-- ================================================== --> @@ -477,10 +478,39 @@ <!-- Categories --> <record id="slide_category_demo_3_0" model="slide.slide"> - <field name="name">Introduction</field> + <field name="name">Working with Wood</field> <field name="is_category" eval="True"/> <field name="channel_id" ref="website_slides.slide_channel_demo_3_furn0"/> - <field name="sequence">0</field> + <field name="sequence">1</field> + </record> + + <!-- Slides --> + <record id="slide_slide_demo_3_0" model="slide.slide"> + <field name="name">Comparing Hardness of Wood Species</field> + <field name="sequence">2</field> + <field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_wood_infographic_1.jpg"/> + <field name="slide_type">infographic</field> + <field name="channel_id" ref="website_slides.slide_channel_demo_3_furn0"/> + <field name="is_published" eval="True"/> + <field name="is_preview" eval="True"/> + <field name="public_views">10</field> + <field name="completion_time">12</field> + <field name="tag_ids" eval="[(4, ref('website_slides.slide_tag_demo_colorful'))]"/> + <field name="description">Comparing Hardness of Wood Species</field> + </record> + <record id="slide_slide_demo_3_1" model="slide.slide"> + <field name="name">Wood Bending With Steam Box</field> + <field name="sequence">3</field> + <field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_thumb_PYr1rK8pS30.jpg"/> + <field name="url">https://www.youtube.com/watch?v=PYr1rK8pS30</field> + <field name="document_id">PYr1rK8pS30</field> + <field name="slide_type">video</field> + <field name="channel_id" ref="website_slides.slide_channel_demo_3_furn0"/> + <field name="is_published" eval="True"/> + <field name="is_preview" eval="False"/> + <field name="public_views">10</field> + <field name="completion_time">3</field> + <field name="description">Watching the master(s) at work</field> </record> <!-- CHANNEL 4: Furniture Technical Specifications --> diff --git a/addons/website_slides/static/src/img/slide_demo_thumb_PYr1rK8pS30.jpg b/addons/website_slides/static/src/img/slide_demo_thumb_PYr1rK8pS30.jpg Binary files differnew file mode 100644 index 00000000000..84370ee350b --- /dev/null +++ b/addons/website_slides/static/src/img/slide_demo_thumb_PYr1rK8pS30.jpg diff --git a/addons/website_slides/static/src/img/slide_demo_wood_infographic_1.jpg b/addons/website_slides/static/src/img/slide_demo_wood_infographic_1.jpg Binary files differnew file mode 100644 index 00000000000..71985e2eb32 --- /dev/null +++ b/addons/website_slides/static/src/img/slide_demo_wood_infographic_1.jpg diff --git a/addons/website_slides/tests/test_ui_wslides.py b/addons/website_slides/tests/test_ui_wslides.py index be2293a1074..7d7b93bcb78 100644 --- a/addons/website_slides/tests/test_ui_wslides.py +++ b/addons/website_slides/tests/test_ui_wslides.py @@ -50,6 +50,25 @@ class TestUi(tests.HttpCase): 'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member.ready', login=user_portal.login) + +@tests.common.tagged('external', '-standard') +class TestUiYoutube(tests.HttpCase): + + def test_course_member_yt_employee(self): + # remove membership because we need to be able to join the course during the tour + user_demo = self.env.ref('base.user_demo') + user_demo.flush() + user_demo.write({ + 'groups_id': [(5, 0), (4, self.env.ref('base.group_user').id)] + }) + self.env.ref('website_slides.slide_channel_demo_0_gard_0')._remove_membership(self.env.ref('base.partner_demo')) + + self.phantom_js( + '/slides', + 'odoo.__DEBUG__.services["web_tour.tour"].run("course_member_youtube")', + 'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member_youtube.ready', + login=user_demo.login) + def test_course_publisher_website_designer(self): # remove membership because we need to be able to join the course during the tour # group_website_designer diff --git a/addons/website_slides/tests/tours/slides_course_member.js b/addons/website_slides/tests/tours/slides_course_member.js index 778ace3dbff..3f2a6325681 100644 --- a/addons/website_slides/tests/tours/slides_course_member.js +++ b/addons/website_slides/tests/tours/slides_course_member.js @@ -2,23 +2,6 @@ odoo.define('website_slides.tour.slide.course.member', function (require) { 'use strict'; var tour = require('web_tour.tour'); -var FullScreen = require('website_slides.fullscreen'); - -/** - * Alter this method for test purposes. - * This will make the video start at 10 minutes. - * As it lasts 10min24s, it will mark it as completed immediately. - */ -FullScreen.include({ - _renderSlide: function () { - - var slide = this.get('slide'); - slide.embedUrl += '&start=600'; - this.set('slide', slide); - - return this._super.call(this, arguments); - } -}); /** * Global use case: @@ -105,12 +88,9 @@ tour.register('course_member', { extra_trigger: '.o_wslides_progress_percentage:contains("60")', run: function () {} // check that previous step succeeded }, { - trigger: '.o_wslides_fs_sidebar_list_item div:contains("How to Grow and Harvest The Best Strawberries | Gardening Tips and Tricks")' -}, { - trigger: '.player', - run: function () {} // check player loading + trigger: '.o_wslides_fs_sidebar_list_item div:contains("How to Grow and Harvest The Best Strawberries | Basics")' }, { - trigger: '.o_wslides_fs_sidebar_section_slides li:contains("How to Grow and Harvest The Best Strawberries | Gardening Tips and Tricks") .o_wslides_slide_completed', + trigger: '.o_wslides_fs_sidebar_section_slides li:contains("How to Grow and Harvest The Best Strawberries | Basics") .o_wslides_slide_completed', run: function () {} // check that video slide is marked as 'done' }, { trigger: '.o_wslides_progress_percentage:contains("80")', diff --git a/addons/website_slides/tests/tours/slides_course_member_yt.js b/addons/website_slides/tests/tours/slides_course_member_yt.js new file mode 100644 index 00000000000..b060384d10a --- /dev/null +++ b/addons/website_slides/tests/tours/slides_course_member_yt.js @@ -0,0 +1,67 @@ +odoo.define('website_slides.tour.slide.course.member.youtube', function (require) { +'use strict'; + +var tour = require('web_tour.tour'); +var FullScreen = require('website_slides.fullscreen'); + +/** + * Alter this method for test purposes. + * This will make the video start at 10 minutes. + * As it lasts 10min24s, it will mark it as completed immediately. + */ +FullScreen.include({ + _renderSlide: function () { + + var slide = this.get('slide'); + slide.embedUrl += '&start=260'; + this.set('slide', slide); + + return this._super.call(this, arguments); + } +}); + +/** + * Global use case: + * an user (either employee, website publisher or portal) joins a public + course; + * he has access to the full course content when he's a member of the + course; + * he uses fullscreen player to complete the course; + * he rates the course; + */ +tour.register('course_member_youtube', { + url: '/slides', + test: true +}, [ +// eLearning: go on /all, find free course and join it +{ + trigger: 'a.o_wslides_home_all_slides' +}, { + trigger: 'a:contains("Choose your wood")' +}, { + trigger: 'a:contains("Join Course")' +}, { + trigger: '.o_wslides_js_course_join:contains("You\'re enrolled")', + run: function () {} // check membership +}, { + trigger: 'a:contains("Comparing Hardness of Wood Species")', +}, { + trigger: '.o_wslides_progress_percentage:contains("50")', + run: function () {} // check progression +}, { + trigger: 'a:contains("Wood Bending With Steam Box")', +}, { + trigger: '.player', + run: function () {} // check player loading +}, { + trigger: '.o_wslides_fs_sidebar_section_slides li:contains("Wood Bending With Steam Box") .o_wslides_slide_completed', + run: function () {} // check that video slide is marked as 'done' +}, { + trigger: '.o_wslides_progress_percentage:contains("100")', + run: function () {} // check progression +}, { + trigger: 'a:contains("Back to course")' +} +]); + +}); diff --git a/addons/website_slides/tests/tours/slides_tour_tools.js b/addons/website_slides/tests/tours/slides_tour_tools.js index 3485377fdfb..2290cd4e982 100644 --- a/addons/website_slides/tests/tours/slides_tour_tools.js +++ b/addons/website_slides/tests/tours/slides_tour_tools.js @@ -1,6 +1,10 @@ odoo.define('website_slides.tour.tools', function (require) { 'use strict'; +/* + * PUBLISHER / CONTENT CREATION + */ + var addSection = function (sectionName) { return [ { diff --git a/addons/website_slides/views/assets.xml b/addons/website_slides/views/assets.xml index b310391042a..2d214bfa17c 100644 --- a/addons/website_slides/views/assets.xml +++ b/addons/website_slides/views/assets.xml @@ -36,6 +36,7 @@ <xpath expr="." position="inside"> <script type="text/javascript" src="/website_slides/tests/tours/slides_tour_tools.js"/> <script type="text/javascript" src="/website_slides/tests/tours/slides_course_member.js"/> + <script type="text/javascript" src="/website_slides/tests/tours/slides_course_member_yt.js"/> <script type="text/javascript" src="/website_slides/tests/tours/slides_course_publisher.js"/> </xpath> </template> |
