Skip to content
  • Sam Spilsbury's avatar
    Provide a basic decor plugin acceptance test suite. · b33713d1
    Sam Spilsbury authored
    This change provides a simple acceptance test suite for the decor plugin. It
    creates a fake window decorator (cdt::FakeDecorator) and allows users to
    create fake decorations (eg cdt::FakePixmapDecoration) which can be serialized
    as decoration properties and set on windows under xorg-gtest. It also launches
    compiz with the opengl, composite and decor plugins loaded and runs some
    basic tests. Among them:
    
    BaseDecorAcceptance.
      Startup:
    
        Basic canary "can we start compiz with these plugins" test
    
      FakeDecoratorSessionOwnerNameSetOnSelectionOwner:
    
        Create a fake decorator, ensure that libdecoration sets our
        session name "fake" on the selection owner
    
      FakeDecoratorReceiveClientMessage:
    
        Create fake decorator, ensure that libdecoration posts a client
        message to the root window announcing that the new decorator exists.
    
      DecorationSupportsWindowType:
    
        Create a fake decorator, announce support for the WINDOW type decorations
        and ensure that the correct atom is set on the session owner window.
    
      DecorationSupportsPixmapType:
    
        Create a fake decorator, announce support for the PIXMAP type decorations
        and ensure that the correct atom is set on the session owner window.
    
    DecorFakeDecoratorAcceptance.
      WindowDefaultFallbackNoExtents:
    
        By default, newly created windows should recieve a fallback decoration
        but they should not have any frame extents.
    
    DecorWithPixmapDefaultsAcceptance.
    
      These tests create a default pixmap decoration to use in the hypothetical
      situation that the window decorator hasn't yet generated a decoration
      for this window.
    
      FallbackRecieveInputFrameNotify:
    
        Verify that we get a _COMPIZ_WINDOW_DECOR_INPUT_FRAME property set on
        the client when it is created and mapped (eg, an input frame window
        was annonuced to be created)
    
      FallbackHasInputFrameInParent:
    
        Verify that a second window exists in the frame window after this
        message was recieved.
    
      FallbackNormalWindowExtentOnDecoration:
    
        Verify that _NET_FRAME_EXTENTS is set to the default window extents
        for the default decoration when the window was mapped.
    
      FallbackNormalWindowInputOnFrame:
    
        Verify that the input window matches the extents set.
    
    PixmapDecoratedWindowAcceptance.
    
      These tests create a new window and an associated unique decoration for
      that window.
    
      MaximizeBorderExtentsOnMaximize:
    
        Maximize the window and ensure that the correct border extents are used.
    
      MaximizeBorderExtentsOnVertMaximize:
    
        Vertically maximize the window and ensure that the correct border extents
        are used.
    
      MaximizeBorderExtentsOnHorzMaximize:
    
        Horizontally maximize the window and ensure that the correct border
        extents are used.
    
      MaximizeFrameWindowSizeEqOutputSize:
    
        Maximie the window and ensure that the frame window exactly equals
        the output size.
    
      VertMaximizeFrameWindowSizeEqOutputYHeight:
    
        Maximize the window and ensure that the frame window's Y and Height
        values are consistent with the output size.
    
      HorzMaximizeFrameWindowSizeEqOutputXWidth:
    
        Ditto horizontal maximization.
    
      DISABLED_VertMaximizeFrameWindowSizeSameXWidth:
    
        Maximize the window vertically and ensure that the frame window's
        border-relative X position and width does not change.
    
        This test is disabled, as the behavior in compiz is currently broken,
        (but it means that we can fix it later and enable the test).
    
      DISABLED_HorzMaximizeFrameWindowSizeSameYHeight
    
        Maximize the window horizontally and ensure that the frame window's 
        border-relative Y position and height does not change.
    
        This test is disabled, as the behavior in compiz is currently broken,
        (but it means that we can fix it later and enable the test).
    b33713d1