summaryrefslogtreecommitdiff
path: root/tests/suite/styling/set.typ
diff options
context:
space:
mode:
Diffstat (limited to 'tests/suite/styling/set.typ')
-rw-r--r--tests/suite/styling/set.typ96
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/suite/styling/set.typ b/tests/suite/styling/set.typ
new file mode 100644
index 00000000..a31cd165
--- /dev/null
+++ b/tests/suite/styling/set.typ
@@ -0,0 +1,96 @@
+// General tests for set.
+
+--- set-instantiation-site ---
+// Test that text is affected by instantiation-site bold.
+#let x = [World]
+Hello *#x*
+
+--- set-instantiation-site-markup ---
+// Test that lists are affected by correct indents.
+#let fruit = [
+ - Apple
+ - Orange
+ #list(body-indent: 20pt)[Pear]
+]
+
+- Fruit
+#[#set list(indent: 10pt)
+ #fruit]
+- No more fruit
+
+--- set-text-override ---
+// Test that that block spacing and text style are respected from
+// the outside, but the more specific fill is respected.
+#set block(spacing: 4pt)
+#set text(style: "italic", fill: eastern)
+#let x = [And the forest #parbreak() lay silent!]
+#text(fill: forest, x)
+
+--- set-scoped-in-code-block ---
+// Test that scoping works as expected.
+#{
+ if true {
+ set text(blue)
+ [Blue ]
+ }
+ [Not blue]
+}
+
+--- closure-path-resolve-in-layout-phase ---
+// Test relative path resolving in layout phase.
+#let choice = ("monkey.svg", "rhino.png", "tiger.jpg")
+#set enum(numbering: n => {
+ let path = "/assets/images/" + choice.at(n - 1)
+ move(dy: -0.15em, image(path, width: 1em, height: 1em))
+})
+
++ Monkey
++ Rhino
++ Tiger
+
+--- set-if ---
+// Test conditional set.
+#show ref: it => {
+ set text(red) if it.target == <unknown>
+ "@" + str(it.target)
+}
+
+@hello from the @unknown
+
+--- set-if-bad-type ---
+// Error: 19-24 expected boolean, found integer
+#set text(red) if 1 + 2
+
+--- set-in-expr ---
+// Error: 12-26 set is only allowed directly in code and content blocks
+#{ let x = set text(blue) }
+
+--- set-vs-construct-1 ---
+// Ensure that constructor styles aren't passed down the tree.
+// The inner list should have no extra indent.
+#set par(leading: 2pt)
+#list(body-indent: 20pt, [First], list[A][B])
+
+--- set-vs-construct-2 ---
+// Ensure that constructor styles win, but not over outer styles.
+// The outer paragraph should be right-aligned,
+// but the B should be center-aligned.
+#set list(marker: [>])
+#list(marker: [--])[
+ #rect(width: 2cm, fill: conifer, inset: 4pt, list[A])
+]
+
+--- set-vs-construct-3 ---
+// The inner rectangle should also be yellow here.
+// (and therefore invisible)
+#[#set rect(fill: yellow);#text(1em, rect(inset: 5pt, rect()))]
+
+--- set-vs-construct-4 ---
+// The inner rectangle should not be yellow here.
+A #box(rect(fill: yellow, inset: 5pt, rect())) B
+
+--- show-set-vs-construct ---
+// The constructor property should still work
+// when there are recursive show rules.
+#show enum: set text(blue)
+#enum(numbering: "(a)", [A], enum[B])