yew 0.2.0

A framework for making client-side single-page apps
Documentation
#[macro_use]
extern crate yew;

use yew::virtual_dom::VTag;

#[test]
fn it_compares_tags() {
    let a: VTag<()> = html! {
        <div></div>
    };

    let b: VTag<()> = html! {
        <div></div>
    };

    let c: VTag<()> = html! {
        <p></p>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_text() {
    let a: VTag<()> = html! {
        <div>{ "correct" }</div>
    };

    let b: VTag<()> = html! {
        <div>{ "correct" }</div>
    };

    let c: VTag<()> = html! {
        <div>{ "incorrect" }</div>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_attributes() {
    let a: VTag<()> = html! {
        <div a="test",></div>
    };

    let b: VTag<()> = html! {
        <div a="test",></div>
    };

    let c: VTag<()> = html! {
        <div a="fail",></div>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_children() {
    let a: VTag<()> = html! {
        <div>
            <p></p>
        </div>
    };

    let b: VTag<()> = html! {
        <div>
            <p></p>
        </div>
    };

    let c: VTag<()> = html! {
        <div>
            <span></span>
        </div>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_classes() {
    let a: VTag<()> = html! {
        <div class="test",></div>
    };

    let b: VTag<()> = html! {
        <div class="test",></div>
    };

    let c: VTag<()> = html! {
        <div class="fail",></div>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_values() {
    let a: VTag<()> = html! {
        <input value="test",/>
    };

    let b: VTag<()> = html! {
        <input value="test",/>
    };

    let c: VTag<()> = html! {
        <input value="fail",/>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_kinds() {
    let a: VTag<()> = html! {
        <input type="text",/>
    };

    let b: VTag<()> = html! {
        <input type="text",/>
    };

    let c: VTag<()> = html! {
        <input type="hidden",/>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}

#[test]
fn it_compares_checked() {
    let a: VTag<()> = html! {
        <input type="checkbox", checked=false,/>
    };

    let b: VTag<()> = html! {
        <input type="checkbox", checked=false,/>
    };

    let c: VTag<()> = html! {
        <input type="checkbox", checked=true,/>
    };

    assert_eq!(a, b);
    assert_ne!(a, c);
}