MCPcopy Create free account
hub / github.com/csskit/csskit / test_with_pretty_writer

Function test_with_pretty_writer

crates/css_parse/src/cursor_overlay_sink.rs:228–265  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

226
227 #[test]
228 fn test_with_pretty_writer() {
229 let source_text = "foo{use:other;}";
230 let bump = Bump::default();
231 let lexer = Lexer::new(&EmptyAtomSet::ATOMS, source_text);
232 let mut p = Parser::new(&bump, source_text, lexer);
233 let output = p.parse_entirely::<Vec<'_, ComponentValue>>().output.unwrap();
234 let ComponentValue::SimpleBlock(ref block) = output[1] else { panic!("output[1] was not a block") };
235
236 let overlay_text = "inner{foo: bar;}";
237 let lexer = Lexer::new(&EmptyAtomSet::ATOMS, overlay_text);
238 let mut p = Parser::new(&bump, overlay_text, lexer);
239 let overlay = p.parse_entirely::<Vec<'_, ComponentValue>>();
240 let mut source_cursors = Vec::new_in(&bump);
241 let mut sink = CursorToSourceCursorSink::new(overlay_text, &mut source_cursors);
242 overlay.to_cursors(&mut sink);
243 let mut overlays = CursorOverlaySet::new(&bump);
244 overlays.insert(block.values.to_span(), source_cursors);
245
246 let mut str = String::new();
247 let mut stream = CursorOverlaySink::new(
248 source_text,
249 &overlays,
250 CursorPrettyWriteSink::new(source_text, &mut str, None, QuoteStyle::Double),
251 );
252 output.to_cursors(&mut stream);
253
254 assert_eq!(
255 str,
256 r#"
257foo {
258 inner {
259 foo: bar;
260 }
261}
262 "#
263 .trim()
264 );
265 }
266
267 #[test]
268 fn test_insert_before_and_after() {

Callers

nothing calls this directly

Calls 3

to_cursorsMethod · 0.45
insertMethod · 0.45
to_spanMethod · 0.45

Tested by

no test coverage detected