[GDIPLUS_WINETEST] Sync with Wine Staging 2.9. CORE-13362
[reactos.git] / rostests / winetests / gdiplus / stringformat.c
index f6f0acb..0135d6e 100644 (file)
@@ -36,7 +36,7 @@ static void test_constructor(void)
     GpStringFormat *format;
     GpStatus stat;
     INT n, count;
-    StringAlignment align, valign;
+    StringAlignment align, line_align;
     StringTrimming trimming;
     StringDigitSubstitute digitsub;
     LANGID digitlang;
@@ -45,7 +45,7 @@ static void test_constructor(void)
     expect(Ok, stat);
 
     GdipGetStringFormatAlign(format, &align);
-    GdipGetStringFormatLineAlign(format, &valign);
+    GdipGetStringFormatLineAlign(format, &line_align);
     GdipGetStringFormatHotkeyPrefix(format, &n);
     GdipGetStringFormatTrimming(format, &trimming);
     GdipGetStringFormatDigitSubstitution(format, &digitlang, &digitsub);
@@ -53,7 +53,7 @@ static void test_constructor(void)
 
     expect(HotkeyPrefixNone, n);
     expect(StringAlignmentNear, align);
-    expect(StringAlignmentNear, align);
+    expect(StringAlignmentNear, line_align);
     expect(StringTrimmingCharacter, trimming);
     expect(StringDigitSubstituteUser, digitsub);
     expect(LANG_NEUTRAL, digitlang);
@@ -146,11 +146,11 @@ static void test_digitsubstitution(void)
 
 static void test_getgenerictypographic(void)
 {
-    GpStringFormat *format;
+    GpStringFormat *format, *format2;
     GpStatus stat;
     INT flags;
     INT n;
-    StringAlignment align, valign;
+    StringAlignment align, line_align;
     StringTrimming trimming;
     StringDigitSubstitute digitsub;
     LANGID digitlang;
@@ -163,9 +163,15 @@ static void test_getgenerictypographic(void)
     stat = GdipStringFormatGetGenericTypographic(&format);
     expect(Ok, stat);
 
+    stat = GdipStringFormatGetGenericTypographic(&format2);
+    expect(Ok, stat);
+    ok(format == format2, "expected same format object\n");
+    stat = GdipDeleteStringFormat(format2);
+    expect(Ok, stat);
+
     GdipGetStringFormatFlags(format, &flags);
     GdipGetStringFormatAlign(format, &align);
-    GdipGetStringFormatLineAlign(format, &valign);
+    GdipGetStringFormatLineAlign(format, &line_align);
     GdipGetStringFormatHotkeyPrefix(format, &n);
     GdipGetStringFormatTrimming(format, &trimming);
     GdipGetStringFormatDigitSubstitution(format, &digitlang, &digitsub);
@@ -175,12 +181,30 @@ static void test_getgenerictypographic(void)
             flags);
     expect(HotkeyPrefixNone, n);
     expect(StringAlignmentNear, align);
-    expect(StringAlignmentNear, align);
+    expect(StringAlignmentNear, line_align);
     expect(StringTrimmingNone, trimming);
     expect(StringDigitSubstituteUser, digitsub);
     expect(LANG_NEUTRAL, digitlang);
     expect(0, tabcount);
 
+    /* Change format parameters, release, get format object again. */
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsNoWrap);
+    expect(Ok, stat);
+
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsNoWrap, flags);
+
+    stat = GdipDeleteStringFormat(format);
+    expect(Ok, stat);
+
+    stat = GdipStringFormatGetGenericTypographic(&format);
+    expect(Ok, stat);
+
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsNoWrap, flags);
+
     stat = GdipDeleteStringFormat(format);
     expect(Ok, stat);
 }
@@ -292,12 +316,12 @@ static void test_tabstops(void)
 
 static void test_getgenericdefault(void)
 {
-    GpStringFormat *format;
+    GpStringFormat *format, *format2;
     GpStatus stat;
 
     INT flags;
     INT n;
-    StringAlignment align, valign;
+    StringAlignment align, line_align;
     StringTrimming trimming;
     StringDigitSubstitute digitsub;
     LANGID digitlang;
@@ -310,9 +334,15 @@ static void test_getgenericdefault(void)
     stat = GdipStringFormatGetGenericDefault(&format);
     expect(Ok, stat);
 
+    stat = GdipStringFormatGetGenericDefault(&format2);
+    expect(Ok, stat);
+    ok(format == format2, "expected same format object\n");
+    stat = GdipDeleteStringFormat(format2);
+    expect(Ok, stat);
+
     GdipGetStringFormatFlags(format, &flags);
     GdipGetStringFormatAlign(format, &align);
-    GdipGetStringFormatLineAlign(format, &valign);
+    GdipGetStringFormatLineAlign(format, &line_align);
     GdipGetStringFormatHotkeyPrefix(format, &n);
     GdipGetStringFormatTrimming(format, &trimming);
     GdipGetStringFormatDigitSubstitution(format, &digitlang, &digitsub);
@@ -321,12 +351,30 @@ static void test_getgenericdefault(void)
     expect(0, flags);
     expect(HotkeyPrefixNone, n);
     expect(StringAlignmentNear, align);
-    expect(StringAlignmentNear, align);
+    expect(StringAlignmentNear, line_align);
     expect(StringTrimmingCharacter, trimming);
     expect(StringDigitSubstituteUser, digitsub);
     expect(LANG_NEUTRAL, digitlang);
     expect(0, tabcount);
 
+    /* Change default format parameters, release, get format object again. */
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsNoWrap);
+    expect(Ok, stat);
+
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsNoWrap, flags);
+
+    stat = GdipDeleteStringFormat(format);
+    expect(Ok, stat);
+
+    stat = GdipStringFormatGetGenericDefault(&format);
+    expect(Ok, stat);
+
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsNoWrap, flags);
+
     stat = GdipDeleteStringFormat(format);
     expect(Ok, stat);
 }