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

Function tokenizes_basic_css_file

crates/css_lexer/tests/tests.rs:416–472  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

414
415#[test]
416fn tokenizes_basic_css_file() {
417 let source = "body { color: black }/* fin */";
418 let mut lexer = Lexer::new(&EmptyAtomSet::ATOMS, source);
419 assert_eq!(lexer.offset(), 0);
420 {
421 let token = lexer.advance();
422 assert_eq!(token, Kind::Ident);
423 assert_eq!(lexer.offset(), 4);
424 let c = token.with_cursor(SourceOffset(0));
425 let str = c.str_slice(source);
426 let sc = SourceCursor::from(c, str);
427 assert_eq!(sc.parse(Global), "body");
428 }
429 assert_eq!(lexer.advance(), Kind::Whitespace);
430 assert_eq!(lexer.offset(), 5);
431 assert_eq!(lexer.advance(), Kind::LeftCurly);
432 assert_eq!(lexer.offset(), 6);
433 assert_eq!(lexer.advance(), Kind::Whitespace);
434 assert_eq!(lexer.offset(), 7);
435 {
436 let token = lexer.advance();
437 assert_eq!(token, Kind::Ident);
438 let c = token.with_cursor(SourceOffset(7));
439 let str = c.str_slice(source);
440 let sc = SourceCursor::from(c, str);
441 assert_eq!(sc.parse(Global), "color");
442 }
443 assert_eq!(lexer.offset(), 12);
444 assert_eq!(lexer.advance(), Kind::Colon);
445 assert_eq!(lexer.offset(), 13);
446 assert_eq!(lexer.advance(), Kind::Whitespace);
447 assert_eq!(lexer.offset(), 14);
448 {
449 let token = lexer.advance();
450 assert_eq!(token, Kind::Ident);
451 let c = token.with_cursor(SourceOffset(14));
452 let str = c.str_slice(source);
453 let sc = SourceCursor::from(c, str);
454 assert_eq!(sc.parse(Global), "black");
455 }
456 assert_eq!(lexer.offset(), 19);
457 assert_eq!(lexer.advance(), Kind::Whitespace);
458 assert_eq!(lexer.offset(), 20);
459 assert_eq!(lexer.advance(), Kind::RightCurly);
460 assert_eq!(lexer.offset(), 21);
461 {
462 let token = lexer.advance();
463 assert_eq!(token, Kind::Comment);
464 let c = token.with_cursor(SourceOffset(21));
465 let str = c.str_slice(source);
466 let sc = SourceCursor::from(c, str);
467 assert_eq!(sc.parse(Global), " fin ");
468 }
469 assert_eq!(lexer.offset(), 30);
470 assert_eq!(lexer.advance(), Kind::Eof);
471 assert_eq!(lexer.offset(), 30);
472}
473

Callers

nothing calls this directly

Calls 4

SourceOffsetClass · 0.85
advanceMethod · 0.80
with_cursorMethod · 0.80
str_sliceMethod · 0.80

Tested by

no test coverage detected