ThinkingEngine-net / PickleTestSuite

1 stars 0 forks source link

Multi Tree Column Error (HDC) - Pickle Error Captured #109

Open support-thinkingengine opened 1 year ago

support-thinkingengine commented 1 year ago

Build: Pickle Application : 1.17.0.2 Pickle Core : 1.17.0.2 Pickle Automation : 1.17.0.2 Pickle Console : 1.0.0.0 Build Architecture: Amd64 When: 21/04/2023 10:59 UTC .Net #: Above version 4.7.1 [528372] - 4.0.30319.42000 OS #: Microsoft Windows NT 6.2.9200.0 OS Architecture: 64 bit Memory Available: 979MB CPU Used: 0%

--------------- Error Stack Trace -------------- in System.Drawing.Graphics.GetHdc() in System.Windows.Forms.ImageList.GetBitmap(Int32 index) in System.Windows.Forms.ImageList.ImageCollection.get_Item(Int32 index) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.TreeNodeAdv.DrawStateImageList(TreeNodeAdvPaintEventArgs eaEventArgs, Boolean bIsMirrored) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.TreeNodeAdv.Draw(ThemedControlDrawing treeTD, ThemedControlDrawing buttonTD, Pen linePen, Point mousePos, Boolean mouseDown, TreeNodeAdvPaintEventArgs e) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.DrawNodeInternal(Graphics g, TreeNodeAdv node, TreeNodeAdv mouseDownNode, Rectangle clip, Boolean active, Boolean selected, Boolean hotTrack, Boolean mouseDown, Point mousePos, Int32 nNodeLeft, Int32 nNodeRight) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.DrawNode(Graphics g, Rectangle clip, TreeNodeAdv node, Int32 y, Point mousePos, Boolean mouseDown, Boolean background) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.Draw(PaintEventArgs e) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.OnPaint(PaintEventArgs e) in System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) in System.Windows.Forms.Control.WmPaint(Message& m) in System.Windows.Forms.Control.WndProc(Message& m) in Syncfusion.Windows.Forms.ScrollControl.WmPaint(Message& msg) in Syncfusion.Windows.Forms.ScrollControl.WndProc(Message& msg) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.WndProc(Message& m) in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ---------------End Stack Trace --------------

--------------- Error Handler Stack Trace -------------- [0] GetExecutingStackTrace at offset 73 in file:line:column :0:0

[1] setError at offset 1397 in file:line:column :0:0

[2] ReportError at offset 50 in file:line:column :0:0

[3] Application_ThreadException at offset 28 in file:line:column :0:0

[4] OnThreadException at offset 168 in file:line:column :0:0

[5] WndProcException at offset 28 in file:line:column :0:0

[6] Callback at offset 194 in file:line:column :0:0

[7] CallWindowProc at offset 0 in file:line:column :0:0

[8] CallWindowProc at offset 0 in file:line:column :0:0

[9] DefWndProc at offset 157 in file:line:column :0:0

[10] WndProc at offset 2103 in file:line:column :0:0

[11] WndProc at offset 404 in file:line:column :0:0

[12] WndProc at offset 1478 in file:line:column :0:0

[13] Callback at offset 194 in file:line:column :0:0

[14] CallWindowProc at offset 0 in file:line:column :0:0

[15] CallWindowProc at offset 0 in file:line:column :0:0

[16] DefWndProc at offset 157 in file:line:column :0:0

[17] WndProc at offset 159 in file:line:column :0:0

[18] WndProc at offset 404 in file:line:column :0:0

[19] WndProc at offset 1478 in file:line:column :0:0

[20] Callback at offset 194 in file:line:column :0:0

[21] DispatchMessageW at offset 0 in file:line:column :0:0

[22] DispatchMessageW at offset 0 in file:line:column :0:0

[23] System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop at offset 833 in file:line:column :0:0

[24] RunMessageLoopInner at offset 455 in file:line:column :0:0

[25] RunMessageLoop at offset 82 in file:line:column :0:0

[26] Main at offset 237 in file:line:column :0:0

---------------End Stack Trace --------------

--------------- Location --------------

Target: IntPtr GetHdc() Where: System.Drawing ---------------End Location --------------

--------------- Error -------------- System.ArgumentException: Parametro non valido. in System.Drawing.Graphics.GetHdc() in System.Windows.Forms.ImageList.GetBitmap(Int32 index) in System.Windows.Forms.ImageList.ImageCollection.get_Item(Int32 index) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.TreeNodeAdv.DrawStateImageList(TreeNodeAdvPaintEventArgs eaEventArgs, Boolean bIsMirrored) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.TreeNodeAdv.Draw(ThemedControlDrawing treeTD, ThemedControlDrawing buttonTD, Pen linePen, Point mousePos, Boolean mouseDown, TreeNodeAdvPaintEventArgs e) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.DrawNodeInternal(Graphics g, TreeNodeAdv node, TreeNodeAdv mouseDownNode, Rectangle clip, Boolean active, Boolean selected, Boolean hotTrack, Boolean mouseDown, Point mousePos, Int32 nNodeLeft, Int32 nNodeRight) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.DrawNode(Graphics g, Rectangle clip, TreeNodeAdv node, Int32 y, Point mousePos, Boolean mouseDown, Boolean background) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.Draw(PaintEventArgs e) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.OnPaint(PaintEventArgs e) in System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) in System.Windows.Forms.Control.WmPaint(Message& m) in System.Windows.Forms.Control.WndProc(Message& m) in Syncfusion.Windows.Forms.ScrollControl.WmPaint(Message& msg) in Syncfusion.Windows.Forms.ScrollControl.WndProc(Message& msg) in Syncfusion.Windows.Forms.Tools.MultiColumnTreeView.MultiColumnTreeView.WndProc(Message& m) in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ---------------End Error --------------

--------------- Active Source -------------- {"Name":"Single Script - 05_01_05_User_menu_recipes changes","Description":"","ID":"66c8f77e-66b9-4757-8c60-1634c631b62f","Scripts":[{"projectRelativePath":"","type":0,"lastGoodCompileCheckSum":"","CompileStatus":4,"GherkinCompileStatus":4,"lastError":"","rule":0,"Condition":"","CMDParams":"","CMD":"","ID":"cc0dcd48-85ec-4966-8d3a-fa3715c27d45","InheritVars":true,"parent":"","Name":"05_01_05_User_menu_recipes changes","isNew":true,"cmdRegExpSuccess":"","browser":0,"customBrowserName":"Chrome"}]}

Author: Giuseppe Rocco

Updated : 16/03/2023

Applies to: P306 MDOD

Feature: Recipes changes button in user menu In Recipes changes screen it is possible to change grinding level value and dose time for single and double grinding modes. It is also possible to execute tests for the same types of doses with set durations. Enabling only director password function in password screen of technician menu, to access to the recipes changes screen, it is necessary to use director password. If only technician password is activated in password screen of technician menu to access to the recipes changes screen, it is necessary to use technician password. If director and technician passwords are both activated, to access to the recipes changes screen, it is necessary to use technician password.

Scenario: Recipes changes button with Adjustment dose time password input
    When        User presses recipes changes button in user menu
        And     Adjustment dose time password is enabled in Password activation screen
    Then        Password screen is shown

Scenario: Recipes changes button - wrong technician password input
    Given       Password screen is shown
    When        User types wrong technician password (different from 2222)
        And     Last number typed is visible as number
        And     Penultimate number typed changes from number to asterisk
        And     User presses OK button 
    Then        Red block grinder screen is shown for 2 seconds
        And     Password screen is shown

Scenario: Recipes changes button - password input after wrong password input
    Given       Password screen is shown
    When        User types correct technician password= 2222
        And     Last number typed is visible as number
        And     Penultimate number typed changes from number to asterisk
        And     User presses OK button 
    Then        Recipes changes screen is shown          

Scenario: Recipes changes button - exit with Adjustment dose time password enabled
    Given       Home screen is shown after exit from user menu
        And     Adjustment dose time password is enable
    When        User presses recipes changes button
    Then        Password screen is shown

Scenario: Recipes changes button with Adjustment dose time password disabled
    When        User presses recipes changes button in user menu
        And     Adjustment dose time password is disabled in Password activation screen
    Then        Recipes changes screen is shown

Scenario: Recipes changes screen
    Given       User is in Recipes changes screen
        And     Grinding level value, + and - buttons are present (disabled for Base Version)
        And     Four fields related to A, B, C and D positions are present
        And     As default Continue dose, topping and empty button are disabled field
        And     As default Single and double dose fields are enabled                    
        And     +, - and test buttons are present in single and double dose fields
        And     Dose time values are present in single (2,5 sec as default) and double (4,8 sec as default) dose fields
        And     Icon identifying the screen is present in the bottom left-hand corner

Scenario Outline: Recipes changes screen- Grinding level field (only for Full version)
    Given       User is in Recipes changes screen  
    When        User presses <sign> button in grinding level field for 2 times
    Then        Grinding level value is <action> of 2 consecutively

    Examples:   
        |sign |action   |
        |+    |increased| 
        |-    |decreased| 

Scenario Outline: Recipes changes screen - limit of increase/decrease for grinding level value (only for Full version)
    Given       Grinding phase has been performed 
        And     User is in grinding level screen
    When        User <action1> grinding level value more than 3
    Then        Grinding level value is <action2> only of 3

    Examples:   
        |action1   |action2   |
        |increases |increased |
        |decreases |decreased |

Scenario Outline: Recipes changes screen- Grinding level value (only for Full version)
    Given       User is in Recipes changes screen 
        And     Grinding level value is <min_max> seconds
    When        User presses <sign> button
    Then        Grinding level value remains at <min_max>.

    Examples:
        |min_max  |sign   |
        |0        |-      |
        |150      |+      |

 Scenario: Recipes changes screen- Grinding level value saving/1 (only for Full version)
    Given       User is in Recipes changes screen 
        And     Grinding level value is changed
    When        User presses Return button until home screen is shown
    Then        Home screen is shown
        And     Grinding level value is the same set in recipes changes screen

 Scenario Outline: Recipes changes screen- Grinding level value saving/2 (only for Full version)
    Given       User is in user screen
    When        User presses Recipes changes button
    Then        Recipes changes screen is shown
        And     Grinding level value is the same set previously

Scenario Outline: Recipes changes screen- Change of dose time
    Given       User is in Recipes changes screen  
    When        User presses <sign> button in <value> dose field consecutively
    Then        Dose time value is <action> of 0,1 second consecutively

    Examples:   
        |sign |action   |value   |
        |+    |increased|single  | 
        |-    |decreased|double  | 

Scenario Outline: Recipes changes screen- minimum/maximum dose time values
    Given       User is in Recipes changes screen 
        And     Dose time value is <min_max> seconds for <value> dose field
    When        User presses <sign> button
    Then        Time value for single/double dose remains at <min_max>.

    Examples:
        |min_max  |sign   |value   |
        |0,5      |-      |single  | 
        |15       |+      |double  |

 Scenario Outline: Recipes changes screen- single and double dose time value saving/1
    Given       User is in Recipes changes screen 
        And     <value> dose time value is changed
    When        User presses Return button
    Then        User menu is shown
        And     <value> dose time value in <value> dose button is the same set in recipes changes screen

    Examples:
        |value   |
        |single  | 
        |double  |

 Scenario Outline: Recipes changes screen- single and double dose time value saving/2
    Given       User is in user menu
    When        User presses Recipes changes button 
    Then        Recipes changes screen is shown
        And     <value> dose time value is the same set previously

    Examples:
        |value   |
        |single  | 
        |double  | 

 Scenario Outline: Recipes changes screen- single and double dose time value changing
    Given       <value> dose time value has been changed
        And     Grinding level value has been changed (disabled for Base Version)
        And     User/Technician takes note about new <value> dose time value
        And     User/Technician takes note about new grinding level value
    When        User/Technician checks changed <value> dose time value in all screen related to dose time value
        And     User/Technician checks changed grinding level value in all screen related to grinding level value (disabled for Base Version)
    Then        Changed <value> dose time value are present correctly
        And     Changed grinding level value is present correctly

    Examples:
        |value   |
        |single  | 
        |double  |        

Scenario Outline: Recipes changes screen - start/end of test execution 
    Given       User is in Recipes changes screen 
    When        User presses button to start test for <value> dose 
    Then        Test execution starts
        And     User is in Recipes changes screen 
        And     Test icon button changes from > to || 
        And     Test stops automatically when set dose time is elapsed
        And     Test icon button changes from || to > 

    Examples:   
        |value    |
        |single   |
        |double   |      

Scenario Outline: Recipes changes screen - abort of test execution 
    Given       Test execution for <value> dose is running
        And     User is in Recipes changes screen
        And     Set dose time is not elapsed 
    When        User presses test button for single or double dose 
    Then        Test execution is stopped
        And     Test icon button changes from || to > 

    Examples:   
        |value    |
        |single   |
        |double   |  

Scenario Outline: Recipes changes screen - screens navigation is not allowed during test execution 
    Given       Test execution for <value> dose is running
        And     User is in Recipes changes screen
        And     Set dose time is not elapsed 
    When        User presses Return button 
    Then        Test execution continues
        And     User is still in Recipes changes screen 

    Examples:   
        |value    |
        |single   |
        |double   |

--------------- Active Source --------------

ThinkingEngine-net commented 1 year ago

Needs Investigation