| // Copyright 2026 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| use escaping::escape; |
| use escaping::unescape; |
| use googletest::prelude::*; |
| |
| #[gtest] |
| fn escaping_empty_input_returns_empty_output() { |
| expect_that!(escape(b""), eq(b"")); |
| } |
| |
| #[gtest] |
| fn unescaping_empty_input_returns_empty_output() { |
| expect_that!(unescape(b""), eq(b"")); |
| } |
| |
| #[gtest] |
| fn escaping_plain_input_is_returned_as_is() { |
| expect_that!(escape(b"plain text"), eq(b"plain text")); |
| } |
| |
| #[gtest] |
| fn unescaping_plain_input_is_returned_as_is() { |
| expect_that!(unescape(b"plain text"), eq(b"plain text")); |
| } |
| |
| #[gtest] |
| fn escaping_replaces_special_characters() { |
| expect_that!(escape(b"two\nlines"), eq(br"two\nlines")); |
| expect_that!(escape(b"back\\slash"), eq(br"back\\slash")); |
| } |
| |
| #[gtest] |
| fn unescaping_replaces_escape_sequences() { |
| expect_that!(unescape(br"two\nlines"), eq(b"two\nlines")); |
| expect_that!(unescape(br"back\\slash"), eq(b"back\\slash")); |
| } |
| |
| // Uncomment the following imports and fuzz tests as you work through the |
| // codelab. |
| // |
| // use fuzztest::domains::arbitrary::Arbitrary; |
| // use fuzztest::domains::containers::VecOf; |
| // use fuzztest::fuzztest; |
| |
| // #[fuzztest(input = VecOf::new(Arbitrary::<u8>::default()))] |
| // fn unescaping_escaped_input_gives_original(input: Vec<u8>) { |
| // assert_eq!(unescape(&escape(&input)), input); |
| // } |
| |
| // #[fuzztest(input = VecOf::new(Arbitrary::<u8>::default()))] |
| // fn escaping_never_panics(input: Vec<u8>) { |
| // escape(&input); |
| // } |
| |
| // #[fuzztest(input = VecOf::new(Arbitrary::<u8>::default()))] |
| // fn unescaping_never_panics(input: Vec<u8>) { |
| // unescape(&input); |
| // } |