KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_clipboard.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <clipboard.h>
#include <wx/clipbrd.h>
#include <wx/display.h>
#include <wx/image.h>
#include <wx/string.h>
#include <wx/filename.h>
#include <wx/mstream.h>
#include <vector>
#include <cstdlib>

Go to the source code of this file.

Macros

#define SKIP_IF_HEADLESS()
 Macro to skip clipboard tests in headless environments.
 

Functions

static bool IsDisplayAvailable ()
 Check if a display is available for clipboard operations.
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_BasicText)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_EmptyString)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_UTF8Characters)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_LargeText)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_SpecialCharacters)
 
 BOOST_AUTO_TEST_CASE (GetClipboardUTF8_EmptyClipboard)
 
 BOOST_AUTO_TEST_CASE (GetClipboardUTF8_NonTextData)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_SimpleGrid)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_EmptyGrid)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_SingleCell)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_WithCommas)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_WithQuotes)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_WithNewlines)
 
 BOOST_AUTO_TEST_CASE (SaveTabularData_IrregularGrid)
 
 BOOST_AUTO_TEST_CASE (GetTabularDataFromClipboard_InvalidData)
 
 BOOST_AUTO_TEST_CASE (GetImageFromClipboard_NoImage)
 
 BOOST_AUTO_TEST_CASE (GetImageFromClipboard_TextInClipboard)
 
 BOOST_AUTO_TEST_CASE (Clipboard_MultipleSaveOperations)
 
 BOOST_AUTO_TEST_CASE (Clipboard_ConcurrentAccess)
 
 BOOST_AUTO_TEST_CASE (Clipboard_FlushBehavior)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_EmptyMimeDataFallsBack)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_KicadFormat)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_MultipleMimeTypes)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_NoKicadFormat)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_UTF8InKicadFormat)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_SExpressionRoundTrip)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_EmptyDataSkipped)
 
 BOOST_AUTO_TEST_CASE (SaveClipboard_WithMimeData_PngHandledAsBitmap)
 
 BOOST_AUTO_TEST_CASE (DualBufferAlpha_FullyOpaque)
 Tests for the dual-buffer alpha computation algorithm.
 
 BOOST_AUTO_TEST_CASE (DualBufferAlpha_FullyTransparent)
 
 BOOST_AUTO_TEST_CASE (DualBufferAlpha_SemiTransparent)
 
 BOOST_AUTO_TEST_CASE (DualBufferAlpha_AntiAliasedEdge)
 
 BOOST_AUTO_TEST_CASE (BitmapSizeCalculation_MatchesViewScale)
 
 BOOST_AUTO_TEST_CASE (BitmapSizeCalculation_ClampToMaxSize)
 
 BOOST_AUTO_TEST_CASE (ZoomFactorCalculation_MatchesViewScale)
 
 BOOST_AUTO_TEST_CASE (PageSizeCalculation_MatchesBitmapForCentering)
 

Macro Definition Documentation

◆ SKIP_IF_HEADLESS

#define SKIP_IF_HEADLESS ( )
Value:
do \
{ \
if( !IsDisplayAvailable() ) \
{ \
BOOST_TEST_MESSAGE( "Skipping test - no display available (headless environment)" ); \
return; \
} \
} while( 0 )
static bool IsDisplayAvailable()
Check if a display is available for clipboard operations.

Macro to skip clipboard tests in headless environments.

This prevents GTK assertions when no display is available.

Definition at line 51 of file test_clipboard.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/36]

BOOST_AUTO_TEST_CASE ( BitmapSizeCalculation_ClampToMaxSize )

Definition at line 815 of file test_clipboard.cpp.

◆ BOOST_AUTO_TEST_CASE() [2/36]

BOOST_AUTO_TEST_CASE ( BitmapSizeCalculation_MatchesViewScale )

Definition at line 784 of file test_clipboard.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_AUTO_TEST_CASE() [3/36]

BOOST_AUTO_TEST_CASE ( Clipboard_ConcurrentAccess )

◆ BOOST_AUTO_TEST_CASE() [4/36]

BOOST_AUTO_TEST_CASE ( Clipboard_FlushBehavior )

◆ BOOST_AUTO_TEST_CASE() [5/36]

BOOST_AUTO_TEST_CASE ( Clipboard_MultipleSaveOperations )

◆ BOOST_AUTO_TEST_CASE() [6/36]

BOOST_AUTO_TEST_CASE ( DualBufferAlpha_AntiAliasedEdge )

Definition at line 762 of file test_clipboard.cpp.

◆ BOOST_AUTO_TEST_CASE() [7/36]

BOOST_AUTO_TEST_CASE ( DualBufferAlpha_FullyOpaque )

Tests for the dual-buffer alpha computation algorithm.

This algorithm computes alpha by comparing renders on white vs black backgrounds:

  • On white: result_w = α*F + (1-α)*255
  • On black: result_b = α*F Therefore: α = 1 - (result_w - result_b)/255 And: F = result_b / α (when α > 0)

Definition at line 687 of file test_clipboard.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_AUTO_TEST_CASE() [8/36]

BOOST_AUTO_TEST_CASE ( DualBufferAlpha_FullyTransparent )

Definition at line 716 of file test_clipboard.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_AUTO_TEST_CASE() [9/36]

BOOST_AUTO_TEST_CASE ( DualBufferAlpha_SemiTransparent )

Definition at line 733 of file test_clipboard.cpp.

◆ BOOST_AUTO_TEST_CASE() [10/36]

BOOST_AUTO_TEST_CASE ( GetClipboardUTF8_EmptyClipboard )

Definition at line 135 of file test_clipboard.cpp.

References GetClipboardUTF8(), result, and SKIP_IF_HEADLESS.

◆ BOOST_AUTO_TEST_CASE() [11/36]

BOOST_AUTO_TEST_CASE ( GetClipboardUTF8_NonTextData )

Definition at line 150 of file test_clipboard.cpp.

References GetClipboardUTF8(), result, and SKIP_IF_HEADLESS.

◆ BOOST_AUTO_TEST_CASE() [12/36]

BOOST_AUTO_TEST_CASE ( GetImageFromClipboard_NoImage )

Definition at line 363 of file test_clipboard.cpp.

References GetImageFromClipboard(), image, and SKIP_IF_HEADLESS.

◆ BOOST_AUTO_TEST_CASE() [13/36]

BOOST_AUTO_TEST_CASE ( GetImageFromClipboard_TextInClipboard )

Definition at line 378 of file test_clipboard.cpp.

References GetImageFromClipboard(), image, SaveClipboard(), and SKIP_IF_HEADLESS.

◆ BOOST_AUTO_TEST_CASE() [14/36]

BOOST_AUTO_TEST_CASE ( GetTabularDataFromClipboard_InvalidData )

◆ BOOST_AUTO_TEST_CASE() [15/36]

BOOST_AUTO_TEST_CASE ( PageSizeCalculation_MatchesBitmapForCentering )

Definition at line 868 of file test_clipboard.cpp.

◆ BOOST_AUTO_TEST_CASE() [16/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_BasicText )

◆ BOOST_AUTO_TEST_CASE() [17/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_EmptyString )

◆ BOOST_AUTO_TEST_CASE() [18/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_LargeText )

◆ BOOST_AUTO_TEST_CASE() [19/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_SpecialCharacters )

◆ BOOST_AUTO_TEST_CASE() [20/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_UTF8Characters )

◆ BOOST_AUTO_TEST_CASE() [21/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_EmptyDataSkipped )

◆ BOOST_AUTO_TEST_CASE() [22/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_EmptyMimeDataFallsBack )

◆ BOOST_AUTO_TEST_CASE() [23/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_KicadFormat )

◆ BOOST_AUTO_TEST_CASE() [24/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_MultipleMimeTypes )

◆ BOOST_AUTO_TEST_CASE() [25/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_NoKicadFormat )

◆ BOOST_AUTO_TEST_CASE() [26/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_PngHandledAsBitmap )

◆ BOOST_AUTO_TEST_CASE() [27/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_SExpressionRoundTrip )

◆ BOOST_AUTO_TEST_CASE() [28/36]

BOOST_AUTO_TEST_CASE ( SaveClipboard_WithMimeData_UTF8InKicadFormat )

◆ BOOST_AUTO_TEST_CASE() [29/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_EmptyGrid )

◆ BOOST_AUTO_TEST_CASE() [30/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_IrregularGrid )

◆ BOOST_AUTO_TEST_CASE() [31/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_SimpleGrid )

◆ BOOST_AUTO_TEST_CASE() [32/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_SingleCell )

◆ BOOST_AUTO_TEST_CASE() [33/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_WithCommas )

◆ BOOST_AUTO_TEST_CASE() [34/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_WithNewlines )

◆ BOOST_AUTO_TEST_CASE() [35/36]

BOOST_AUTO_TEST_CASE ( SaveTabularData_WithQuotes )

◆ BOOST_AUTO_TEST_CASE() [36/36]

BOOST_AUTO_TEST_CASE ( ZoomFactorCalculation_MatchesViewScale )

Definition at line 843 of file test_clipboard.cpp.

References IU_PER_MILS.

◆ IsDisplayAvailable()

static bool IsDisplayAvailable ( )
static

Check if a display is available for clipboard operations.

On Linux/GTK, clipboard operations require a display connection. In headless CI environments, this is not available.

Definition at line 36 of file test_clipboard.cpp.