clone from: https://github.com/miquels/webdav-handler-rs
This commit is contained in:
149
README.litmus-test.md
Normal file
149
README.litmus-test.md
Normal file
@@ -0,0 +1,149 @@
|
||||
|
||||
# Webdav protocol compliance.
|
||||
|
||||
The standard for webdav compliance testing is [`litmus`](http://www.webdav.org/neon/litmus/),
|
||||
which is available at [http://www.webdav.org/neon/litmus/](http://www.webdav.org/neon/litmus/).
|
||||
|
||||
Building it:
|
||||
```
|
||||
curl -O http://www.webdav.org/neon/litmus/litmus-0.13.tar.gz
|
||||
tar xf litmus-0.13.tar.gz
|
||||
cd litmus-0.13
|
||||
./configure
|
||||
make
|
||||
```
|
||||
|
||||
Then run the test server (`sample-litmus-server`). For some tests, `litmus`
|
||||
assumes that it is using basic authentication, so you must run the server
|
||||
with the `--auth` flag.
|
||||
```
|
||||
cd webdav-handler-rs
|
||||
cargo run --example sample-litmus-server -- --memfs --auth
|
||||
```
|
||||
|
||||
You do not have to install the litmus binary, it's possible to run the tests
|
||||
straight from the unpacked & compiled litmus directory (`someuser` and
|
||||
`somepass` are literal, you do not have to put a real username/password there):
|
||||
|
||||
```
|
||||
$ cd litmus-0.13
|
||||
$ TESTS="http basic copymove locks props" HTDOCS=htdocs TESTROOT=. ./litmus http://localhost:4918/ someuser somepass
|
||||
|
||||
-> running `http':
|
||||
0. init.................. pass
|
||||
1. begin................. pass
|
||||
2. expect100............. pass
|
||||
3. finish................ pass
|
||||
<- summary for `http': of 4 tests run: 4 passed, 0 failed. 100.0%
|
||||
-> running `basic':
|
||||
0. init.................. pass
|
||||
1. begin................. pass
|
||||
2. options............... pass
|
||||
3. put_get............... pass
|
||||
4. put_get_utf8_segment.. pass
|
||||
5. put_no_parent......... pass
|
||||
6. mkcol_over_plain...... pass
|
||||
7. delete................ pass
|
||||
8. delete_null........... pass
|
||||
9. delete_fragment....... WARNING: DELETE removed collection resource with Request-URI including fragment; unsafe
|
||||
...................... pass (with 1 warning)
|
||||
10. mkcol................. pass
|
||||
11. mkcol_again........... pass
|
||||
12. delete_coll........... pass
|
||||
13. mkcol_no_parent....... pass
|
||||
14. mkcol_with_body....... pass
|
||||
15. finish................ pass
|
||||
<- summary for `basic': of 16 tests run: 16 passed, 0 failed. 100.0%
|
||||
-> 1 warning was issued.
|
||||
-> running `copymove':
|
||||
0. init.................. pass
|
||||
1. begin................. pass
|
||||
2. copy_init............. pass
|
||||
3. copy_simple........... pass
|
||||
4. copy_overwrite........ pass
|
||||
5. copy_nodestcoll....... pass
|
||||
6. copy_cleanup.......... pass
|
||||
7. copy_coll............. pass
|
||||
8. copy_shallow.......... pass
|
||||
9. move.................. pass
|
||||
10. move_coll............. pass
|
||||
11. move_cleanup.......... pass
|
||||
12. finish................ pass
|
||||
<- summary for `copymove': of 13 tests run: 13 passed, 0 failed. 100.0%
|
||||
-> running `locks':
|
||||
0. init.................. pass
|
||||
1. begin................. pass
|
||||
2. options............... pass
|
||||
3. precond............... pass
|
||||
4. init_locks............ pass
|
||||
5. put................... pass
|
||||
6. lock_excl............. pass
|
||||
7. discover.............. pass
|
||||
8. refresh............... pass
|
||||
9. notowner_modify....... pass
|
||||
10. notowner_lock......... pass
|
||||
11. owner_modify.......... pass
|
||||
12. notowner_modify....... pass
|
||||
13. notowner_lock......... pass
|
||||
14. copy.................. pass
|
||||
15. cond_put.............. pass
|
||||
16. fail_cond_put......... pass
|
||||
17. cond_put_with_not..... pass
|
||||
18. cond_put_corrupt_token pass
|
||||
19. complex_cond_put...... pass
|
||||
20. fail_complex_cond_put. pass
|
||||
21. unlock................ pass
|
||||
22. fail_cond_put_unlocked pass
|
||||
23. lock_shared........... pass
|
||||
24. notowner_modify....... pass
|
||||
25. notowner_lock......... pass
|
||||
26. owner_modify.......... pass
|
||||
27. double_sharedlock..... pass
|
||||
28. notowner_modify....... pass
|
||||
29. notowner_lock......... pass
|
||||
30. unlock................ pass
|
||||
31. prep_collection....... pass
|
||||
32. lock_collection....... pass
|
||||
33. owner_modify.......... pass
|
||||
34. notowner_modify....... pass
|
||||
35. refresh............... pass
|
||||
36. indirect_refresh...... pass
|
||||
37. unlock................ pass
|
||||
38. unmapped_lock......... pass
|
||||
39. unlock................ pass
|
||||
40. finish................ pass
|
||||
<- summary for `locks': of 41 tests run: 41 passed, 0 failed. 100.0%
|
||||
-> running `props':
|
||||
0. init.................. pass
|
||||
1. begin................. pass
|
||||
2. propfind_invalid...... pass
|
||||
3. propfind_invalid2..... pass
|
||||
4. propfind_d0........... pass
|
||||
5. propinit.............. pass
|
||||
6. propset............... pass
|
||||
7. propget............... pass
|
||||
8. propextended.......... pass
|
||||
9. propmove.............. pass
|
||||
10. propget............... pass
|
||||
11. propdeletes........... pass
|
||||
12. propget............... pass
|
||||
13. propreplace........... pass
|
||||
14. propget............... pass
|
||||
15. propnullns............ pass
|
||||
16. propget............... pass
|
||||
17. prophighunicode....... pass
|
||||
18. propget............... pass
|
||||
19. propremoveset......... pass
|
||||
20. propget............... pass
|
||||
21. propsetremove......... pass
|
||||
22. propget............... pass
|
||||
23. propvalnspace......... pass
|
||||
24. propwformed........... pass
|
||||
25. propinit.............. pass
|
||||
26. propmanyns............ pass
|
||||
27. propget............... pass
|
||||
28. propcleanup........... pass
|
||||
29. finish................ pass
|
||||
<- summary for `props': of 30 tests run: 30 passed, 0 failed. 100.0%
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user