~aleteoryx/muditaos

5ad30d6c4a84741a07f1792434ccac37f130e33c — mkamonMdt 4 years ago 69e75e7
[EGD-5488] Add BT pairing test plan

Test plan for following cases:
-pairing "happy path"
-pairing with device that cannot be reached
-forgetting pair
A test/pytest/service-bluetooth/doc/README.md => test/pytest/service-bluetooth/doc/README.md +48 -0
@@ 0,0 1,48 @@
# Bluetooth Service test plan

## Introduction 

The following provides an overview of automatic tests of `ServiceBluetooth` (henceforth referred to as `S-BT`) functionalities form the user perspective (using `HMI` - human control interface). 
Each test may consists of consecutive steps:
* Pre-test device state setup. This includes:
  * `DB` data injection
  * test arguments read
  * proper window navigation  
* Actual device test run
* Post-test device state analysis

The `HMI` interface shall be accessed by `harness` for automation purposes. 
For analyzing content inside displayed windows, the `DOM` functionality shall be used.

## Pre-test device state setup

Each `S-BT` test shall start in `ApplicationSettings:Bluetooth` main window, with `Bluetooth` in turned off state by default. 
This can be achieved by following logic enforcement:

![bt-pretest-state](./bluetooth-main-window-navigation.svg)
![bt-main-navi](./bluetooth-pretest-condition.svg)

## Testing

### Pairing - happy path 

The test's goal is to ensure that the user can establish `Pure` - `BT` device pair via `HMI`. 

The test inputs:
* external `BT` device name (required)
* external `BT` device password (optional)

![bt-test-pairing-happy-path](./bluetooth-test-pairing-happy-path.svg)

### Pairing - no device

The test's goal is to ensure that the user will be correctly notified if the device stored in `DB` 
(the user has paired with the device in the past successfully) cannot be reached at the moment.

![bt-test-pairing-no-device](./bluetooth-test-pairing-no-device.svg)

### Pairing - forgetting pair

The test's goal is to ensure that the user can make `Pure` forget `BT` devices stored in `DB`.

![bt-test-pairing-forget](./bluetooth-test-pairing-forget-pair.svg)

A test/pytest/service-bluetooth/doc/bluetooth-main-window-navigation.puml => test/pytest/service-bluetooth/doc/bluetooth-main-window-navigation.puml +7 -0
@@ 0,0 1,7 @@
@startuml
if (is on desktop main) then (no)
  :navigate to desktop main;
else (yes)
endif
: navigate to settings - BT Main;
@enduml

A test/pytest/service-bluetooth/doc/bluetooth-main-window-navigation.svg => test/pytest/service-bluetooth/doc/bluetooth-main-window-navigation.svg +20 -0
@@ 0,0 1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="203px" preserveAspectRatio="none" style="width:241px;height:203px;" version="1.1" viewBox="0 0 241 203" width="241px" zoomAndPan="magnify"><defs><filter height="300%" id="f1v7l7ti954a7d" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FEFECE" filter="url(#f1v7l7ti954a7d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="25" y="60.3013"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="35" y="81.4399">navigate to desktop main</text><polygon fill="#FEFECE" filter="url(#f1v7l7ti954a7d)" points="60.5,11.8989,169.5,11.8989,181.5,23.8989,169.5,35.8989,60.5,35.8989,48.5,23.8989,60.5,11.8989" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="119" y="46.1094">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="60.5" y="27.707">is on desktop main</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="181.5" y="21.3047">yes</text><polygon fill="#FEFECE" filter="url(#f1v7l7ti954a7d)" points="115,114.27,127,126.27,115,138.27,103,126.27,115,114.27" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1v7l7ti954a7d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="210" x="10" y="158.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="186" x="24" y="179.4087">navigate to settings - BT Main</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="115" x2="115" y1="35.8989" y2="60.3013"/><polygon fill="#A80036" points="111,50.3013,115,60.3013,119,50.3013,115,54.3013" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="181.5" x2="215" y1="23.8989" y2="23.8989"/><polygon fill="#A80036" points="211,67.2856,215,77.2856,219,67.2856,215,71.2856" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="215" x2="215" y1="23.8989" y2="126.27"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="215" x2="127" y1="126.27" y2="126.27"/><polygon fill="#A80036" points="137,122.27,127,126.27,137,130.27,133,126.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115" x2="115" y1="94.27" y2="114.27"/><polygon fill="#A80036" points="111,104.27,115,114.27,119,104.27,115,108.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115" x2="115" y1="138.27" y2="158.27"/><polygon fill="#A80036" points="111,148.27,115,158.27,119,148.27,115,152.27" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml
if (is on desktop main) then (no)
  :navigate to desktop main;
else (yes)
endif
: navigate to settings - BT Main;
@enduml

PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.20.04
Operating System: Linux
OS Version: 5.8.0-43-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file

A test/pytest/service-bluetooth/doc/bluetooth-pretest-condition.puml => test/pytest/service-bluetooth/doc/bluetooth-pretest-condition.puml +11 -0
@@ 0,0 1,11 @@
@startuml
if (is on BT Main) then (no)
  :navigate to BT main;
else (yes)
endif

if (is BT off) then (no)
  :turn BT off;
else (yes)
endif
@enduml

A test/pytest/service-bluetooth/doc/bluetooth-pretest-condition.svg => test/pytest/service-bluetooth/doc/bluetooth-pretest-condition.svg +24 -0
@@ 0,0 1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="296px" preserveAspectRatio="none" style="width:190px;height:296px;" version="1.1" viewBox="0 0 190 296" width="190px" zoomAndPan="magnify"><defs><filter height="300%" id="f1waudlsv668qd" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FEFECE" filter="url(#f1waudlsv668qd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="10" y="60.3013"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="124" x="20" y="81.4399">navigate to BT main</text><polygon fill="#FEFECE" filter="url(#f1waudlsv668qd)" points="43.5,11.8989,120.5,11.8989,132.5,23.8989,120.5,35.8989,43.5,35.8989,31.5,23.8989,43.5,11.8989" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="86" y="46.1094">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="43.5" y="27.707">is on BT Main</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="132.5" y="21.3047">yes</text><polygon fill="#FEFECE" filter="url(#f1waudlsv668qd)" points="82,114.27,94,126.27,82,138.27,70,126.27,82,114.27" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1waudlsv668qd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="85" x="39.5" y="206.6724"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="49.5" y="227.811">turn BT off</text><polygon fill="#FEFECE" filter="url(#f1waudlsv668qd)" points="58,158.27,106,158.27,118,170.27,106,182.27,58,182.27,46,170.27,58,158.27" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="86" y="192.4805">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="58" y="174.0781">is BT off</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="118" y="167.6758">yes</text><polygon fill="#FEFECE" filter="url(#f1waudlsv668qd)" points="82,260.6411,94,272.6411,82,284.6411,70,272.6411,82,260.6411" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="82" y1="35.8989" y2="60.3013"/><polygon fill="#A80036" points="78,50.3013,82,60.3013,86,50.3013,82,54.3013" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="132.5" x2="164" y1="23.8989" y2="23.8989"/><polygon fill="#A80036" points="160,67.2856,164,77.2856,168,67.2856,164,71.2856" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="164" x2="164" y1="23.8989" y2="126.27"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="164" x2="94" y1="126.27" y2="126.27"/><polygon fill="#A80036" points="104,122.27,94,126.27,104,130.27,100,126.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="82" y1="94.27" y2="114.27"/><polygon fill="#A80036" points="78,104.27,82,114.27,86,104.27,82,108.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="82" y1="182.27" y2="206.6724"/><polygon fill="#A80036" points="78,196.6724,82,206.6724,86,196.6724,82,200.6724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="118" x2="134.5" y1="170.27" y2="170.27"/><polygon fill="#A80036" points="130.5,213.6567,134.5,223.6567,138.5,213.6567,134.5,217.6567" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="134.5" x2="134.5" y1="170.27" y2="272.6411"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="134.5" x2="94" y1="272.6411" y2="272.6411"/><polygon fill="#A80036" points="104,268.6411,94,272.6411,104,276.6411,100,272.6411" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="82" y1="240.6411" y2="260.6411"/><polygon fill="#A80036" points="78,250.6411,82,260.6411,86,250.6411,82,254.6411" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="82" y1="138.27" y2="158.27"/><polygon fill="#A80036" points="78,148.27,82,158.27,86,148.27,82,152.27" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml
if (is on BT Main) then (no)
  :navigate to BT main;
else (yes)
endif

if (is BT off) then (no)
  :turn BT off;
else (yes)
endif
@enduml

PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.20.04
Operating System: Linux
OS Version: 5.8.0-43-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-forget-pair.puml => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-forget-pair.puml +33 -0
@@ 0,0 1,33 @@
@startuml
start
partition Initialization {
    :enforce pretest machine conditions:
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}

partition test-run {
    : turn BT on;
    : enter AllDevices;

    if (BT device name displayed) then (yes)
        : forget;
    else (no = failure)
        stop
    endif
    if (BT device name displayed) then (success)
    else (yes = failure)
        stop
    endif
}

partition post-test-analysis {
    :on "all device" window:
    -parse all devices window content
    -check for BT device name - should not appear;
}

@enduml

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-forget-pair.svg => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-forget-pair.svg +46 -0
@@ 0,0 1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="630px" preserveAspectRatio="none" style="width:388px;height:630px;" version="1.1" viewBox="0 0 388 630" width="388px" zoomAndPan="magnify"><defs><filter height="300%" id="fkoea4umu0pon" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="176" cy="20" fill="#000000" filter="url(#fkoea4umu0pon)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#fkoea4umu0pon)" height="152.1094" style="stroke: #000000; stroke-width: 2.0;" width="268" x="42" y="40.8018"/><path d="M131,41.8018 L131,50.0986 L121,60.0986 L42,60.0986 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="79" x="45" y="54.7969">Initialization</text><rect fill="#FEFECE" filter="url(#fkoea4umu0pon)" height="103.8125" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="248" x="52" y="77.0986"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="228" x="62" y="98.2373">enforce pretest machine conditions:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="62" y="112.2061">-inject test data to DB:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="79" y="121.0049"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="84" y="126.1748">BT device</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="62" y="140.1436">-PurePhone visible state:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="79" y="148.9424"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="201" x="84" y="154.1123">in ApplicationSettings:Bluetooth</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="79" y="162.9111"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="127" x="84" y="168.0811">bluetooth turned off</text><rect fill="#FFFFFF" filter="url(#fkoea4umu0pon)" height="294.3159" style="stroke: #000000; stroke-width: 2.0;" width="298" x="79.5" y="203.7129"/><path d="M144.5,204.7129 L144.5,213.0098 L134.5,223.0098 L79.5,223.0098 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="55" x="82.5" y="217.708">test-run</text><rect fill="#FEFECE" filter="url(#fkoea4umu0pon)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="131.5" y="240.0098"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="145.5" y="261.1484">turn BT on</text><rect fill="#FEFECE" filter="url(#fkoea4umu0pon)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="114" y="293.9785"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="128" y="315.1172">enter AllDevices</text><rect fill="#FEFECE" filter="url(#fkoea4umu0pon)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="62" x="145" y="396.3496"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="38" x="159" y="417.4883">forget</text><polygon fill="#FEFECE" filter="url(#fkoea4umu0pon)" points="101.5,347.9473,250.5,347.9473,262.5,359.9473,250.5,371.9473,101.5,371.9473,89.5,359.9473,101.5,347.9473" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="180" y="382.1577">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="101.5" y="363.7554">BT device name displayed</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="262.5" y="357.353">no = failure</text><ellipse cx="349.5" cy="359.9473" fill="none" filter="url(#fkoea4umu0pon)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="350" cy="360.4473" fill="#000000" filter="url(#fkoea4umu0pon)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fkoea4umu0pon)" points="101.5,450.3184,250.5,450.3184,262.5,462.3184,250.5,474.3184,101.5,474.3184,89.5,462.3184,101.5,450.3184" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="180" y="484.5288">success</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="101.5" y="466.1265">BT device name displayed</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="262.5" y="459.7241">yes = failure</text><ellipse cx="355.5" cy="462.3184" fill="none" filter="url(#fkoea4umu0pon)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="356" cy="462.8184" fill="#000000" filter="url(#fkoea4umu0pon)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#fkoea4umu0pon)" height="110.2031" style="stroke: #000000; stroke-width: 2.0;" width="332" x="10" y="508.8306"/><path d="M142,509.8306 L142,518.1274 L132,528.1274 L10,528.1274 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="122" x="13" y="522.8257">post-test-analysis</text><rect fill="#FEFECE" filter="url(#fkoea4umu0pon)" height="61.9063" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="20" y="545.1274"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="141" x="30" y="566.2661">on "all device" window:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="30" y="580.2349">-parse all devices window content</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="30" y="594.2036">-check for BT device name - should not appear</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="30" y2="77.0986"/><polygon fill="#A80036" points="172,67.0986,176,77.0986,180,67.0986,176,71.0986" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="273.9785" y2="293.9785"/><polygon fill="#A80036" points="172,283.9785,176,293.9785,180,283.9785,176,287.9785" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="371.9473" y2="396.3496"/><polygon fill="#A80036" points="172,386.3496,176,396.3496,180,386.3496,176,390.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="262.5" x2="339.5" y1="359.9473" y2="359.9473"/><polygon fill="#A80036" points="329.5,355.9473,339.5,359.9473,329.5,363.9473,333.5,359.9473" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="430.3184" y2="450.3184"/><polygon fill="#A80036" points="172,440.3184,176,450.3184,180,440.3184,176,444.3184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="327.9473" y2="347.9473"/><polygon fill="#A80036" points="172,337.9473,176,347.9473,180,337.9473,176,341.9473" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="474.3184" y2="545.1274"/><polygon fill="#A80036" points="172,535.1274,176,545.1274,180,535.1274,176,539.1274" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="262.5" x2="345.5" y1="462.3184" y2="462.3184"/><polygon fill="#A80036" points="335.5,458.3184,345.5,462.3184,335.5,466.3184,339.5,462.3184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176" x2="176" y1="180.9111" y2="240.0098"/><polygon fill="#A80036" points="172,230.0098,176,240.0098,180,230.0098,176,234.0098" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml
start
partition Initialization {
    :enforce pretest machine conditions:
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}

partition test-run {
    : turn BT on;
    : enter AllDevices;

    if (BT device name displayed) then (yes)
        : forget;
    else (no = failure)
        stop
    endif
    if (BT device name displayed) then (success)
    else (yes = failure)
        stop
    endif
}

partition post-test-analysis {
    :on "all device" window:
    -parse all devices window content
    -check for BT device name - should not appear;
}

@enduml

PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.20.04
Operating System: Linux
OS Version: 5.8.0-43-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-happy-path.puml => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-happy-path.puml +46 -0
@@ 0,0 1,46 @@
@startuml

partition Initialization {
    :enforce pretest machine conditions:
    -read test input data:
    **requires BT device name
    **optional BT device password
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}
partition test-run {
    : turn BT on;
    : enter AllDevices;
if (BT device name displayed) then (yes)
    : connect;
else (no)
    : press "+" for scan;
    repeat
        if( timeout exceeded ) then (no)
        else (yes = failure)
            stop
        endif
        : wait x seconds;
    repeatwhile (BT device name not displayed)
    : add device;
endif

if (need password) then (yes)
    :enter password;
    if(valid password ) then (yes)
    else (no = failure)
        stop
    endif
else (no)
endif
}
partition post-test-analysis {
    : check if connected successfully:
    -parse all devices window content
    -check for BT device name + connected icon;
}

@enduml

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-happy-path.svg => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-happy-path.svg +59 -0
@@ 0,0 1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1068px" preserveAspectRatio="none" style="width:476px;height:1068px;" version="1.1" viewBox="0 0 476 1068" width="476px" zoomAndPan="magnify"><defs><filter height="300%" id="fivov867r11m1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fivov867r11m1)" height="187.0156" style="stroke: #000000; stroke-width: 2.0;" width="268" x="35.5" y="10.8018"/><path d="M124.5,11.8018 L124.5,20.0986 L114.5,30.0986 L35.5,30.0986 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="79" x="38.5" y="24.7969">Initialization</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="145.7188" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="248" x="45.5" y="40.0986"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="228" x="55.5" y="61.2373">enforce pretest machine conditions:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="55.5" y="75.2061">-read test input data:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="72.5" y="84.0049"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="154" x="77.5" y="89.1748">requires BT device name</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="72.5" y="97.9736"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="178" x="77.5" y="103.1436">optional BT device password</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="55.5" y="117.1123">-inject test data to DB:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="72.5" y="125.9111"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="77.5" y="131.0811">BT device</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="55.5" y="145.0498">-PurePhone visible state:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="72.5" y="153.8486"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="201" x="77.5" y="159.0186">in ApplicationSettings:Bluetooth</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="72.5" y="167.8174"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="127" x="77.5" y="172.9873">bluetooth turned off</text><rect fill="#FFFFFF" filter="url(#fivov867r11m1)" height="727.9326" style="stroke: #000000; stroke-width: 2.0;" width="450" x="15.5" y="208.6191"/><path d="M80.5,209.6191 L80.5,217.916 L70.5,227.916 L15.5,227.916 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="55" x="18.5" y="222.6143">test-run</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="125" y="244.916"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="139" y="266.0547">turn BT on</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="107.5" y="298.8848"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="121.5" y="320.0234">enter AllDevices</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="95,352.8535,244,352.8535,256,364.8535,244,376.8535,95,376.8535,83,364.8535,95,352.8535" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="95" y="368.6616">BT device name displayed</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="63" y="362.2593">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="256" y="362.2593">no</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="35.5" y="386.8535"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="49.5" y="407.9922">connect</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="197" y="386.8535"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="114" x="211" y="407.9922">press "+" for scan</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="211.5,484.8223,320.5,484.8223,332.5,496.8223,320.5,508.8223,211.5,508.8223,199.5,496.8223,211.5,484.8223" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="270" y="519.0327">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="215.5" y="500.6304">timeout exceeded</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="332.5" y="494.228">yes = failure</text><ellipse cx="425.5" cy="496.8223" fill="none" filter="url(#fivov867r11m1)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="426" cy="497.3223" fill="#000000" filter="url(#fivov867r11m1)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="116" x="208" y="560.5327"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="222" y="581.6714">wait x seconds</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="266,440.8223,278,452.8223,266,464.8223,254,452.8223,266,440.8223" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="180.5,614.5015,351.5,614.5015,363.5,626.5015,351.5,638.5015,180.5,638.5015,168.5,626.5015,180.5,614.5015" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="180.5" y="630.3096">BT device name not displayed</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="220" y="658.5015"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="68" x="234" y="679.6401">add device</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="169.5,698.4702,181.5,710.4702,169.5,722.4702,157.5,710.4702,169.5,698.4702" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="110.5" y="790.8726"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="120.5" y="812.0112">enter password</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="124.5,844.8413,214.5,844.8413,226.5,856.8413,214.5,868.8413,124.5,868.8413,112.5,856.8413,124.5,844.8413" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="173.5" y="879.0518">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="124.5" y="860.6494">valid password</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="226.5" y="854.2471">no = failure</text><ellipse cx="313.5" cy="856.8413" fill="none" filter="url(#fivov867r11m1)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="314" cy="857.3413" fill="#000000" filter="url(#fivov867r11m1)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="125.5,742.4702,213.5,742.4702,225.5,754.4702,213.5,766.4702,125.5,766.4702,113.5,754.4702,125.5,742.4702" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="173.5" y="776.6807">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="125.5" y="758.2783">need password</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="225.5" y="751.876">no</text><polygon fill="#FEFECE" filter="url(#fivov867r11m1)" points="169.5,900.5518,181.5,912.5518,169.5,924.5518,157.5,912.5518,169.5,900.5518" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#fivov867r11m1)" height="110.2031" style="stroke: #000000; stroke-width: 2.0;" width="319" x="10" y="947.3535"/><path d="M142,948.3535 L142,956.6504 L132,966.6504 L10,966.6504 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="122" x="13" y="961.3486">post-test-analysis</text><rect fill="#FEFECE" filter="url(#fivov867r11m1)" height="61.9063" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="20" y="983.6504"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="202" x="34" y="1004.7891">check if connected successfully:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="30" y="1018.7578">-parse all devices window content</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="279" x="30" y="1032.7266">-check for BT device name + connected icon</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="278.8848" y2="298.8848"/><polygon fill="#A80036" points="165.5,288.8848,169.5,298.8848,173.5,288.8848,169.5,292.8848" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="508.8223" y2="560.5327"/><polygon fill="#A80036" points="262,550.5327,266,560.5327,270,550.5327,266,554.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="332.5" x2="415.5" y1="496.8223" y2="496.8223"/><polygon fill="#A80036" points="405.5,492.8223,415.5,496.8223,405.5,500.8223,409.5,496.8223" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="464.8223" y2="484.8223"/><polygon fill="#A80036" points="262,474.8223,266,484.8223,270,474.8223,266,478.8223" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="363.5" x2="449.5" y1="626.5015" y2="626.5015"/><polygon fill="#A80036" points="445.5,540.5327,449.5,530.5327,453.5,540.5327,449.5,536.5327" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.5" x2="449.5" y1="452.8223" y2="626.5015"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.5" x2="278" y1="452.8223" y2="452.8223"/><polygon fill="#A80036" points="288,448.8223,278,452.8223,288,456.8223,284,452.8223" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="594.5015" y2="614.5015"/><polygon fill="#A80036" points="262,604.5015,266,614.5015,270,604.5015,266,608.5015" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="420.8223" y2="440.8223"/><polygon fill="#A80036" points="262,430.8223,266,440.8223,270,430.8223,266,434.8223" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="638.5015" y2="658.5015"/><polygon fill="#A80036" points="262,648.5015,266,658.5015,270,648.5015,266,652.5015" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="83" x2="73" y1="364.8535" y2="364.8535"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="73" x2="73" y1="364.8535" y2="386.8535"/><polygon fill="#A80036" points="69,376.8535,73,386.8535,77,376.8535,73,380.8535" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="256" x2="266" y1="364.8535" y2="364.8535"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="364.8535" y2="386.8535"/><polygon fill="#A80036" points="262,376.8535,266,386.8535,270,376.8535,266,380.8535" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="73" x2="73" y1="420.8223" y2="710.4702"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="73" x2="157.5" y1="710.4702" y2="710.4702"/><polygon fill="#A80036" points="147.5,706.4702,157.5,710.4702,147.5,714.4702,151.5,710.4702" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="266" y1="692.4702" y2="710.4702"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="181.5" y1="710.4702" y2="710.4702"/><polygon fill="#A80036" points="191.5,706.4702,181.5,710.4702,191.5,714.4702,187.5,710.4702" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="332.8535" y2="352.8535"/><polygon fill="#A80036" points="165.5,342.8535,169.5,352.8535,173.5,342.8535,169.5,346.8535" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="868.8413" y2="900.5518"/><polygon fill="#A80036" points="165.5,890.5518,169.5,900.5518,173.5,890.5518,169.5,894.5518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="226.5" x2="303.5" y1="856.8413" y2="856.8413"/><polygon fill="#A80036" points="293.5,852.8413,303.5,856.8413,293.5,860.8413,297.5,856.8413" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="824.8413" y2="844.8413"/><polygon fill="#A80036" points="165.5,834.8413,169.5,844.8413,173.5,834.8413,169.5,838.8413" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="766.4702" y2="790.8726"/><polygon fill="#A80036" points="165.5,780.8726,169.5,790.8726,173.5,780.8726,169.5,784.8726" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="225.5" x2="345.5" y1="754.4702" y2="754.4702"/><polygon fill="#A80036" points="341.5,836.7593,345.5,846.7593,349.5,836.7593,345.5,840.7593" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345.5" x2="345.5" y1="754.4702" y2="912.5518"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345.5" x2="181.5" y1="912.5518" y2="912.5518"/><polygon fill="#A80036" points="191.5,908.5518,181.5,912.5518,191.5,916.5518,187.5,912.5518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="722.4702" y2="742.4702"/><polygon fill="#A80036" points="165.5,732.4702,169.5,742.4702,173.5,732.4702,169.5,736.4702" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="185.8174" y2="244.916"/><polygon fill="#A80036" points="165.5,234.916,169.5,244.916,173.5,234.916,169.5,238.916" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="169.5" x2="169.5" y1="924.5518" y2="983.6504"/><polygon fill="#A80036" points="165.5,973.6504,169.5,983.6504,173.5,973.6504,169.5,977.6504" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml

partition Initialization {
    :enforce pretest machine conditions:
    -read test input data:
    **requires BT device name
    **optional BT device password
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}
partition test-run {
    : turn BT on;
    : enter AllDevices;
if (BT device name displayed) then (yes)
    : connect;
else (no)
    : press "+" for scan;
    repeat
        if( timeout exceeded ) then (no)
        else (yes = failure)
            stop
        endif
        : wait x seconds;
    repeatwhile (BT device name not displayed)
    : add device;
endif

if (need password) then (yes)
    :enter password;
    if(valid password ) then (yes)
    else (no = failure)
        stop
    endif
else (no)
endif
}
partition post-test-analysis {
    : check if connected successfully:
    -parse all devices window content
    -check for BT device name + connected icon;
}

@enduml

PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.20.04
Operating System: Linux
OS Version: 5.8.0-43-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-no-device.puml => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-no-device.puml +29 -0
@@ 0,0 1,29 @@
@startuml

partition Initialization {
    :enforce pretest machine conditions:
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}
partition test-run {
    : turn BT on;
    : enter AllDevices;
if (BT device name displayed) then (yes)
    : connect;
else (no = failure)
stop
endif
if (connection-failed window) then (success)
else (no = failure)
stop
endif
}
partition post-test-analysis {
    :on "all device" window:
    -parse all devices window content
    -check for BT device name + no connected icon;
}
@enduml

A test/pytest/service-bluetooth/doc/bluetooth-test-pairing-no-device.svg => test/pytest/service-bluetooth/doc/bluetooth-test-pairing-no-device.svg +42 -0
@@ 0,0 1,42 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="593px" preserveAspectRatio="none" style="width:386px;height:593px;" version="1.1" viewBox="0 0 386 593" width="386px" zoomAndPan="magnify"><defs><filter height="300%" id="f4pw4s7np9ydq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f4pw4s7np9ydq)" height="145.1094" style="stroke: #000000; stroke-width: 2.0;" width="268" x="45.5" y="10.8018"/><path d="M134.5,11.8018 L134.5,20.0986 L124.5,30.0986 L45.5,30.0986 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="79" x="48.5" y="24.7969">Initialization</text><rect fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" height="103.8125" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="248" x="55.5" y="40.0986"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="228" x="65.5" y="61.2373">enforce pretest machine conditions:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="65.5" y="75.2061">-inject test data to DB:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="82.5" y="84.0049"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="87.5" y="89.1748">BT device</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="65.5" y="103.1436">-PurePhone visible state:</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="82.5" y="111.9424"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="201" x="87.5" y="117.1123">in ApplicationSettings:Bluetooth</text><rect fill="#000000" height="3.5" style="stroke: #000000; stroke-width: 0.0;" width="3.5" x="82.5" y="125.9111"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="127" x="87.5" y="131.0811">bluetooth turned off</text><rect fill="#FFFFFF" filter="url(#f4pw4s7np9ydq)" height="294.3159" style="stroke: #000000; stroke-width: 2.0;" width="292" x="83" y="166.7129"/><path d="M148,167.7129 L148,176.0098 L138,186.0098 L83,186.0098 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="55" x="86" y="180.708">test-run</text><rect fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="135" y="203.0098"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="149" y="224.1484">turn BT on</text><rect fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="117.5" y="256.9785"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="131.5" y="278.1172">enter AllDevices</text><rect fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="142" y="359.3496"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="156" y="380.4883">connect</text><polygon fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" points="105,310.9473,254,310.9473,266,322.9473,254,334.9473,105,334.9473,93,322.9473,105,310.9473" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="183.5" y="345.1577">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="105" y="326.7554">BT device name displayed</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="266" y="320.353">no = failure</text><ellipse cx="353" cy="322.9473" fill="none" filter="url(#f4pw4s7np9ydq)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="353.5" cy="323.4473" fill="#000000" filter="url(#f4pw4s7np9ydq)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" points="108.5,413.3184,250.5,413.3184,262.5,425.3184,250.5,437.3184,108.5,437.3184,96.5,425.3184,108.5,413.3184" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="183.5" y="447.5288">success</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="142" x="108.5" y="429.1265">connection-failed window</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="262.5" y="422.7241">no = failure</text><ellipse cx="349.5" cy="425.3184" fill="none" filter="url(#f4pw4s7np9ydq)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="350" cy="425.8184" fill="#000000" filter="url(#f4pw4s7np9ydq)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#f4pw4s7np9ydq)" height="110.2031" style="stroke: #000000; stroke-width: 2.0;" width="339" x="10" y="471.8306"/><path d="M142,472.8306 L142,481.1274 L132,491.1274 L10,491.1274 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="122" x="13" y="485.8257">post-test-analysis</text><rect fill="#FEFECE" filter="url(#f4pw4s7np9ydq)" height="61.9063" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="319" x="20" y="508.1274"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="141" x="30" y="529.2661">on "all device" window:</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="30" y="543.2349">-parse all devices window content</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="299" x="30" y="557.2036">-check for BT device name + no connected icon</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="236.9785" y2="256.9785"/><polygon fill="#A80036" points="175.5,246.9785,179.5,256.9785,183.5,246.9785,179.5,250.9785" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="334.9473" y2="359.3496"/><polygon fill="#A80036" points="175.5,349.3496,179.5,359.3496,183.5,349.3496,179.5,353.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="266" x2="343" y1="322.9473" y2="322.9473"/><polygon fill="#A80036" points="333,318.9473,343,322.9473,333,326.9473,337,322.9473" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="393.3184" y2="413.3184"/><polygon fill="#A80036" points="175.5,403.3184,179.5,413.3184,183.5,403.3184,179.5,407.3184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="290.9473" y2="310.9473"/><polygon fill="#A80036" points="175.5,300.9473,179.5,310.9473,183.5,300.9473,179.5,304.9473" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="437.3184" y2="508.1274"/><polygon fill="#A80036" points="175.5,498.1274,179.5,508.1274,183.5,498.1274,179.5,502.1274" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="262.5" x2="339.5" y1="425.3184" y2="425.3184"/><polygon fill="#A80036" points="329.5,421.3184,339.5,425.3184,329.5,429.3184,333.5,425.3184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="179.5" x2="179.5" y1="143.9111" y2="203.0098"/><polygon fill="#A80036" points="175.5,193.0098,179.5,203.0098,183.5,193.0098,179.5,197.0098" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml

partition Initialization {
    :enforce pretest machine conditions:
    -inject test data to DB:
    ** BT device
    -PurePhone visible state:
    ** in ApplicationSettings:Bluetooth
    ** bluetooth turned off;
}
partition test-run {
    : turn BT on;
    : enter AllDevices;
if (BT device name displayed) then (yes)
    : connect;
else (no = failure)
stop
endif
if (connection-failed window) then (success)
else (no = failure)
stop
endif
}
partition post-test-analysis {
    :on "all device" window:
    -parse all devices window content
    -check for BT device name + no connected icon;
}
@enduml

PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.20.04
Operating System: Linux
OS Version: 5.8.0-43-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file