()
| 414 | |
| 415 | #[test] |
| 416 | fn 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 |
nothing calls this directly
no test coverage detected