<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 07:45:09 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MGNLTEST-58] POC for &#8222;Page objects&#8220; - 1st step for the new UI tests framework</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLTEST-58</link>
                <project id="17084" key="MGNLTEST">Magnolia Test Framework</project>
                    <description>&lt;h3&gt;&lt;a name=&quot;Context%C2%A0&quot;&gt;&lt;/a&gt;Context&#160;&lt;/h3&gt;

&lt;p&gt;Main aim: We need a better &#8222;UI tests framework&#8220; in order to make it &#8222;easier / simpler&#8220; to write and maintain UI tests quicker.&lt;/p&gt;

&lt;p&gt;After some discussion the &#8222;Group of Interest for QA/Testing&#8220; has decided&#160; to proceed with selenium driver based tests.&#160;&lt;/p&gt;

&lt;p&gt;In order to reach the main aim, we want to create an API following the &lt;a href=&quot;https://martinfowler.com/bliki/PageObject.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Page Objects&lt;/a&gt; pattern. This allows to write the UI tests by utilizing the page objects API (instead of using the selenium API) leading to tests with less code, which are easier to read, understand and maintain.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;%C2%A0Preliminarystudies&quot;&gt;&lt;/a&gt;&#160;Preliminary studies&lt;/h4&gt;

&lt;p&gt;Back in the days, Michi M&#252;hlebach started with the creation of &lt;em&gt;Page objects&lt;/em&gt;. Rico did a first follow-up with &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLTEST-60&quot; title=&quot;Reinstate page object extraction initiative&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLTEST-60&quot;&gt;&lt;del&gt;DEV-1199&lt;/del&gt;&lt;/a&gt;. (See &lt;a href=&quot;https://wiki.magnolia-cms.com/display/DEV/Page+object+extraction+initiative&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Page object extraction initiative&lt;/a&gt; too).&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;a name=&quot;Acceptancecriteria%26Scope&quot;&gt;&lt;/a&gt;Acceptance criteria &amp;amp; Scope&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Define minimal API which is sufficient for the given functional test&lt;/li&gt;
	&lt;li&gt;Implement the API.&lt;/li&gt;
	&lt;li&gt;Provide tests to test the implemented API.&lt;/li&gt;
	&lt;li&gt;Write a new UI test for the given scenario by utilizing the new API&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It is sufficient, if the (new) Page Objects API enables UI tests for Magnolia 6.1 and higher only. No need to support tests required for m-5.7.x branch.&lt;/p&gt;

&lt;p&gt;Do not change / alter existing classes, but create new classes / interfaces. Create a new package somewhere (most likely within &lt;tt&gt;ce/magnolia-integration-tests/tests&lt;/tt&gt; for the time being).&lt;/p&gt;

&lt;p&gt;Ideally, the public API is completely free of selenium types. (me thinks) (???).&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;a name=&quot;Scenariototest&quot;&gt;&lt;/a&gt;Scenario to test&lt;/h3&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
Given paige opens the Contacts app:
When she creates the contact Goethe.
Then Goethe contact exists.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;paige&lt;/em&gt;: Is editing (and creating) content; has the role &lt;tt&gt;editor&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="78167">MGNLTEST-58</key>
            <summary>POC for &#8222;Page objects&#8220; - 1st step for the new UI tests framework</summary>
                <type id="3" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10898&amp;avatarType=issuetype">Task</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="cmeier">Christoph Meier</reporter>
                        <labels>
                            <label>ui-tests</label>
                            <label>ui-tests-framework</label>
                    </labels>
                <created>Fri, 26 Jul 2019 05:38:58 +0200</created>
                <updated>Tue, 7 Jul 2020 09:38:10 +0200</updated>
                            <resolved>Wed, 11 Sep 2019 15:45:05 +0200</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="193195" author="cmeier" created="Fri, 26 Jul 2019 05:48:33 +0200"  >&lt;p&gt;Bootstrapping the user &lt;em&gt;paige&lt;/em&gt; can be considered as part of the exemplary test scenario. This could be done with either&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;adding a file to the subreactor &lt;tt&gt;info.magnolia.integrationtests.rules.Fixture&lt;/tt&gt; or&lt;/li&gt;
	&lt;li&gt;by using&#160;the &lt;tt&gt;info.magnolia.integrationtests.rules.Fixture&lt;/tt&gt;&#160;annotation.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I actually like option (2). The question is, whether the POC also must have its own &lt;tt&gt;... .rules.Fixture&lt;/tt&gt; apart from the already existing &lt;tt&gt;info.magnolia.integrationtests.rules&lt;/tt&gt;&lt;/p&gt;</comment>
                            <comment id="196848" author="cmeier" created="Wed, 11 Sep 2019 15:44:35 +0200"  >&lt;p&gt;This was actually tackled by&#160;&lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLTEST-53&quot; title=&quot;Start productizing page object initiative&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLTEST-53&quot;&gt;&lt;del&gt;MGNLCE-164&lt;/del&gt;&lt;/a&gt; and others. Hence I close this one.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10020">
                    <name>dependency</name>
                                            <outwardlinks description="depends upon">
                                        <issuelink>
            <issuekey id="78707">MGNLTEST-53</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                            <outwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="76574">MGNLTEST-60</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10246" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MGNLTEST-2</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>cmeier</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 22 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>cmeier</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y01mr2:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14167" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoR</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>