| 674 | |
| 675 | #[test] |
| 676 | fn test_browser_api() { |
| 677 | let dom = Rc::new(RefCell::new(DomNode::new(DomNodeKind::Document))); |
| 678 | let input = "document.getElementById(\"target\")".to_string(); |
| 679 | let lexer = JsLexer::new(input); |
| 680 | let mut parser = JsParser::new(lexer); |
| 681 | let ast = parser.parse_ast(); |
| 682 | let mut runtime = JsRuntime::new(dom); |
| 683 | let expected = [None, None, Some(RuntimeValue::Number(43))]; |
| 684 | let mut i = 0; |
| 685 | |
| 686 | for node in ast.body() { |
| 687 | let result = runtime.eval(&Some(node.clone()), runtime.env.clone()); |
| 688 | assert_eq!(expected[i], result); |
| 689 | i += 1; |
| 690 | } |
| 691 | } |
| 692 | } |