Separate the testing OPML samples out into files.
This commit is contained in:
		
							parent
							
								
									823a137a76
								
							
						
					
					
						commit
						ba5d7c3edd
					
				| 
						 | 
					@ -1,60 +1,38 @@
 | 
				
			||||||
// TODO: Extract all the OPML strings out and put them into their own files.
 | 
					use std::fs::read_to_string as read;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use opml::*;
 | 
					use opml::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
#[should_panic]
 | 
					#[should_panic]
 | 
				
			||||||
fn test_invalid_xml() {
 | 
					fn test_invalid_xml() {
 | 
				
			||||||
  OPML::new(r#"{not xml :)"#).unwrap();
 | 
					  let sample = read("tests/samples/invalid_xml.opml").unwrap();
 | 
				
			||||||
 | 
					  OPML::new(sample.as_str()).unwrap();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
#[should_panic(expected = "Unsupported OPML version detected: 1.0")]
 | 
					#[should_panic(expected = "Unsupported OPML version detected: 1.0")]
 | 
				
			||||||
fn test_invalid_opml_version_1_0() {
 | 
					fn test_invalid_opml_version_1_0() {
 | 
				
			||||||
  OPML::new(
 | 
					  let sample = read("tests/samples/invalid_opml_version_1_0.opml").unwrap();
 | 
				
			||||||
    r#"
 | 
					  OPML::new(sample.as_str()).unwrap();
 | 
				
			||||||
<opml version="1.0">
 | 
					 | 
				
			||||||
<head/>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
  <outline text="Outline Text"/>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</opml>"#,
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  .unwrap();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
#[should_panic(expected = "Unsupported OPML version detected: 1.1")]
 | 
					#[should_panic(expected = "Unsupported OPML version detected: 1.1")]
 | 
				
			||||||
fn test_invalid_opml_version_1_1() {
 | 
					fn test_invalid_opml_version_1_1() {
 | 
				
			||||||
  OPML::new(
 | 
					  let sample = read("tests/samples/invalid_opml_version_1_1.opml").unwrap();
 | 
				
			||||||
    r#"
 | 
					  OPML::new(sample.as_str()).unwrap();
 | 
				
			||||||
<opml version="1.1">
 | 
					 | 
				
			||||||
<head/>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
  <outline text="Outline Text"/>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</opml>"#,
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  .unwrap();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
#[should_panic(expected = "Unsupported OPML version detected: invalid")]
 | 
					#[should_panic(expected = "Unsupported OPML version detected: invalid")]
 | 
				
			||||||
fn test_invalid_opml_version() {
 | 
					fn test_invalid_opml_version() {
 | 
				
			||||||
  OPML::new(
 | 
					  let sample = read("tests/samples/invalid_opml_version.opml").unwrap();
 | 
				
			||||||
    r#"
 | 
					  OPML::new(sample.as_str()).unwrap();
 | 
				
			||||||
<opml version="invalid">
 | 
					 | 
				
			||||||
<head/>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
  <outline text="Outline Text"/>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</opml>"#,
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  .unwrap();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
#[should_panic(expected = "OPML body has no outlines.")]
 | 
					#[should_panic(expected = "OPML body has no outlines.")]
 | 
				
			||||||
fn test_invalid_opml_no_outlines() {
 | 
					fn test_invalid_opml_no_outlines() {
 | 
				
			||||||
  OPML::new(r#"<opml version="2.0"><head/><body/></opml>"#).unwrap();
 | 
					  let sample = read("tests/samples/invalid_opml_no_outlines.opml").unwrap();
 | 
				
			||||||
 | 
					  OPML::new(sample.as_str()).unwrap();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					<opml version="2.0">
 | 
				
			||||||
 | 
					  <head/>
 | 
				
			||||||
 | 
					  <body/>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					<opml version="invalid">
 | 
				
			||||||
 | 
					  <head/>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <outline text="Outline Text"/>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					<opml version="1.0">
 | 
				
			||||||
 | 
					  <head/>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <outline text="Outline Text"/>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					<opml version="1.1">
 | 
				
			||||||
 | 
					  <head/>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <outline text="Outline Text"/>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{not xml :)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					<opml version="2.0">
 | 
				
			||||||
 | 
					  <head/>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <outline text="Outline Text"/>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					<opml version="2.0">
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					    <dateCreated>Date Created</dateCreated>
 | 
				
			||||||
 | 
					    <dateModified>Date Modified</dateModified>
 | 
				
			||||||
 | 
					    <ownerName>Owner Name</ownerName>
 | 
				
			||||||
 | 
					    <ownerEmail>Owner Email</ownerEmail>
 | 
				
			||||||
 | 
					    <ownerId>Owner ID</ownerId>
 | 
				
			||||||
 | 
					    <docs>http://dev.opml.org/spec2.html</docs>
 | 
				
			||||||
 | 
					    <expansionState>0,1</expansionState>
 | 
				
			||||||
 | 
					    <vertScrollState>0</vertScrollState>
 | 
				
			||||||
 | 
					    <windowTop>1</windowTop>
 | 
				
			||||||
 | 
					    <windowLeft>2</windowLeft>
 | 
				
			||||||
 | 
					    <windowBottom>3</windowBottom>
 | 
				
			||||||
 | 
					    <windowRight>4</windowRight>
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <outline text="Outline Text"
 | 
				
			||||||
 | 
					      type="Outline Type"
 | 
				
			||||||
 | 
					      isBreakpoint="true"
 | 
				
			||||||
 | 
					      isComment="true"
 | 
				
			||||||
 | 
					      created="Outline Date"
 | 
				
			||||||
 | 
					      category="Outline Category"
 | 
				
			||||||
 | 
					      xmlUrl="Outline XML URL"
 | 
				
			||||||
 | 
					      description="Outline Description"
 | 
				
			||||||
 | 
					      htmlUrl="Outline HTML URL"
 | 
				
			||||||
 | 
					      language="Outline Language"
 | 
				
			||||||
 | 
					      title="Outline Title"
 | 
				
			||||||
 | 
					      version="Outline Version"
 | 
				
			||||||
 | 
					      url="Outline URL">
 | 
				
			||||||
 | 
					      <outline text="Nested Outline Text"
 | 
				
			||||||
 | 
					        type="Nested Outline Type"
 | 
				
			||||||
 | 
					        isBreakpoint="true"
 | 
				
			||||||
 | 
					        isComment="false"
 | 
				
			||||||
 | 
					        created="Nested Outline Date"
 | 
				
			||||||
 | 
					        category="Nested Outline Category"
 | 
				
			||||||
 | 
					        xmlUrl="Nested Outline XML URL"
 | 
				
			||||||
 | 
					        description="Nested Outline Description"
 | 
				
			||||||
 | 
					        htmlUrl="Nested Outline HTML URL"
 | 
				
			||||||
 | 
					        language="Nested Outline Language"
 | 
				
			||||||
 | 
					        title="Nested Outline Title"
 | 
				
			||||||
 | 
					        version="Nested Outline Version"
 | 
				
			||||||
 | 
					        url="Nested Outline URL"/>
 | 
				
			||||||
 | 
					    </outline>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</opml>
 | 
				
			||||||
| 
						 | 
					@ -1,20 +1,11 @@
 | 
				
			||||||
// TODO: Extract all the OPML strings out and put them into their own files.
 | 
					use std::fs::read_to_string as read;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use opml::*;
 | 
					use opml::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
fn test_minimum_valid_opml() {
 | 
					fn test_minimum_valid_opml() {
 | 
				
			||||||
  assert_eq!(
 | 
					  assert_eq!(
 | 
				
			||||||
    OPML::new(
 | 
					    OPML::new(&read("tests/samples/minimum_valid_opml.opml").unwrap()).unwrap(),
 | 
				
			||||||
      r#"
 | 
					 | 
				
			||||||
<opml version="2.0">
 | 
					 | 
				
			||||||
  <head/>
 | 
					 | 
				
			||||||
  <body>
 | 
					 | 
				
			||||||
    <outline text="Outline Text"/>
 | 
					 | 
				
			||||||
  </body>
 | 
					 | 
				
			||||||
</opml>"#
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    .unwrap(),
 | 
					 | 
				
			||||||
    OPML {
 | 
					    OPML {
 | 
				
			||||||
      version: "2.0".to_string(),
 | 
					      version: "2.0".to_string(),
 | 
				
			||||||
      head: Head {
 | 
					      head: Head {
 | 
				
			||||||
| 
						 | 
					@ -57,58 +48,8 @@ fn test_minimum_valid_opml() {
 | 
				
			||||||
#[test]
 | 
					#[test]
 | 
				
			||||||
fn test_valid_opml_with_everything() {
 | 
					fn test_valid_opml_with_everything() {
 | 
				
			||||||
  assert_eq!(
 | 
					  assert_eq!(
 | 
				
			||||||
    OPML::new(
 | 
					    OPML::new(&read("tests/samples/valid_opml_with_everything.opml").unwrap())
 | 
				
			||||||
      r#"
 | 
					      .unwrap(),
 | 
				
			||||||
<opml version="2.0">
 | 
					 | 
				
			||||||
  <head>
 | 
					 | 
				
			||||||
    <title>Title</title>
 | 
					 | 
				
			||||||
    <dateCreated>Date Created</dateCreated>
 | 
					 | 
				
			||||||
    <dateModified>Date Modified</dateModified>
 | 
					 | 
				
			||||||
    <ownerName>Owner Name</ownerName>
 | 
					 | 
				
			||||||
    <ownerEmail>Owner Email</ownerEmail>
 | 
					 | 
				
			||||||
    <ownerId>Owner ID</ownerId>
 | 
					 | 
				
			||||||
    <docs>http://dev.opml.org/spec2.html</docs>
 | 
					 | 
				
			||||||
    <expansionState>0,1</expansionState>
 | 
					 | 
				
			||||||
    <vertScrollState>0</vertScrollState>
 | 
					 | 
				
			||||||
    <windowTop>1</windowTop>
 | 
					 | 
				
			||||||
    <windowLeft>2</windowLeft>
 | 
					 | 
				
			||||||
    <windowBottom>3</windowBottom>
 | 
					 | 
				
			||||||
    <windowRight>4</windowRight>
 | 
					 | 
				
			||||||
  </head>
 | 
					 | 
				
			||||||
  <body>
 | 
					 | 
				
			||||||
    <outline
 | 
					 | 
				
			||||||
      text="Outline Text"
 | 
					 | 
				
			||||||
      type="Outline Type"
 | 
					 | 
				
			||||||
      isBreakpoint="true"
 | 
					 | 
				
			||||||
      isComment="true"
 | 
					 | 
				
			||||||
      created="Outline Date"
 | 
					 | 
				
			||||||
      category="Outline Category"
 | 
					 | 
				
			||||||
      xmlUrl="Outline XML URL"
 | 
					 | 
				
			||||||
      description="Outline Description"
 | 
					 | 
				
			||||||
      htmlUrl="Outline HTML URL"
 | 
					 | 
				
			||||||
      language="Outline Language"
 | 
					 | 
				
			||||||
      title="Outline Title"
 | 
					 | 
				
			||||||
      version="Outline Version"
 | 
					 | 
				
			||||||
      url="Outline URL">
 | 
					 | 
				
			||||||
      <outline
 | 
					 | 
				
			||||||
        text="Nested Outline Text"
 | 
					 | 
				
			||||||
        type="Nested Outline Type"
 | 
					 | 
				
			||||||
        isBreakpoint="true"
 | 
					 | 
				
			||||||
        isComment="false"
 | 
					 | 
				
			||||||
        created="Nested Outline Date"
 | 
					 | 
				
			||||||
        category="Nested Outline Category"
 | 
					 | 
				
			||||||
        xmlUrl="Nested Outline XML URL"
 | 
					 | 
				
			||||||
        description="Nested Outline Description"
 | 
					 | 
				
			||||||
        htmlUrl="Nested Outline HTML URL"
 | 
					 | 
				
			||||||
        language="Nested Outline Language"
 | 
					 | 
				
			||||||
        title="Nested Outline Title"
 | 
					 | 
				
			||||||
        version="Nested Outline Version"
 | 
					 | 
				
			||||||
        url="Nested Outline URL"/>
 | 
					 | 
				
			||||||
    </outline>
 | 
					 | 
				
			||||||
  </body>
 | 
					 | 
				
			||||||
</opml>"#
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    .unwrap(),
 | 
					 | 
				
			||||||
    OPML {
 | 
					    OPML {
 | 
				
			||||||
      version: "2.0".to_string(),
 | 
					      version: "2.0".to_string(),
 | 
				
			||||||
      head: Head {
 | 
					      head: Head {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue