text: from .telenium_process import TeleniumTestProcess
  from .common import skip_screen_checks
  from .common import ordered
  
  
  class TrashMessage(TeleniumTestProcess):
      """Trash Screen Functionality Testing"""
  
      @skip_screen_checks
      @ordered
      def test_delete_trash_message(self):
          """Delete Trash message permanently from trash message listing"""
          # Checking current Screen(Inbox screen)
          self.assert_wait_no_except('//ScreenManager[@current]', timeout=15, value='inbox')
          # Method to open side navbar
          self.open_side_navbar()
          # this is for opening Trash screen
          self.cli.wait_click('//NavigationItem[@text=\"Trash\"]', timeout=2)
          # Checking Trash Screen
          self.assertExists("//ScreenManager[@current=\"trash\"]", timeout=5)
          # This is for swiping message to activate delete icon.
          self.cli.wait_drag(
              '//Trash[0]//TwoLineAvatarIconListItem[0]/BoxLayout[1]',
              '//Trash[0]//TwoLineAvatarIconListItem[0]/BoxLayout[2]', 2, timeout=5)
          # Checking the "trash-can" is rendered
          self.assertExists(
              "//MDList[0]/CutsomSwipeToDeleteItem[0]//MDIconButton[@icon~=\"trash-can\"]", timeout=2)
          # Delete icon is enabled
          self.cli.setattr('//MDList[0]/CutsomSwipeToDeleteItem[0]//MDIconButton', 'disabled', False)
          # Checking the Dialog popup is closed
          self.assertNotExists('//MDDialog[@open]', timeout=5)
          # Checking the delete icon is rendered and functional
          self.assertExists('//MDList[0]/CutsomSwipeToDeleteItem[0]//MDIconButton[@icon=\"trash-can\"]', timeout=5)
          # Click on the delete icon to delete the current message
          self.cli.wait_click('//MDList[0]/CutsomSwipeToDeleteItem[0]//MDIconButton[@icon=\"trash-can\"]', timeout=5)
          # Checking Confirm Popup is Opened
          self.assertExists('//MDDialog[@open]', timeout=5)
          # Checking the popup's 'Yes' button is rendered.
          self.assertExists("//MDDialog//MDFlatButton[@text=\"Yes\"]", timeout=5)
          # Clicking on 'Yes' Button on Popup to confirm delete.
          self.cli.wait_click('//MDFlatButton[@text=\"Yes\"]', timeout=5)
          # Checking the Dialog is closed on click "Yes" button
          self.assertNotExists('//MDDialog[@open]', timeout=5)
          # Checking the message is rendered on Trash screen
          self.assertExists('//MDList[0]/CutsomSwipeToDeleteItem[0]', timeout=5)
          # Checking Current screen is Trash Screen
          self.assertExists("//ScreenManager[@current=\"trash\"]", timeout=5)
  