| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | use std::fs::File;use std::io::{Cursor, Read};use std::path::Path;use uuid::Uuid;use zip::ZipArchive;use flowy_storage::StorageObject;use crate::document::supabase_test::helper::FlowySupabaseDocumentTest;#[tokio::test]async fn supabase_document_upload_text_file_test() {  if let Some(test) = FlowySupabaseDocumentTest::new().await {    let storage_service = test      .document_manager      .get_file_storage_service()      .upgrade()      .unwrap();    let object = StorageObject::from_bytes(      &Uuid::new_v4().to_string(),      "hello world".as_bytes(),      "text/plain".to_string(),    );    let url = storage_service.create_object(object).await.unwrap();    let bytes = storage_service      .get_object_by_url(url.clone())      .await      .unwrap();    let s = String::from_utf8(bytes.to_vec()).unwrap();    assert_eq!(s, "hello world");    // Delete the text file    let _ = storage_service.delete_object_by_url(url).await;  }}#[tokio::test]async fn supabase_document_upload_zip_file_test() {  if let Some(test) = FlowySupabaseDocumentTest::new().await {    let storage_service = test      .document_manager      .get_file_storage_service()      .upgrade()      .unwrap();    // Upload zip file    let object =      StorageObject::from_file(&Uuid::new_v4().to_string(), "./tests/asset/test.txt.zip");    let url = storage_service.create_object(object).await.unwrap();    // Read zip file    let zip_data = storage_service      .get_object_by_url(url.clone())      .await      .unwrap();    let reader = Cursor::new(zip_data);    let mut archive = ZipArchive::new(reader).unwrap();    for i in 0..archive.len() {      let mut file = archive.by_index(i).unwrap();      let name = file.name().to_string();      let mut out = Vec::new();      file.read_to_end(&mut out).unwrap();      if name.starts_with("__MACOSX/") {        continue;      }      assert_eq!(name, "test.txt");      assert_eq!(String::from_utf8(out).unwrap(), "hello world");    }    // Delete the zip file    let _ = storage_service.delete_object_by_url(url).await;  }}#[tokio::test]async fn supabase_document_upload_image_test() {  if let Some(test) = FlowySupabaseDocumentTest::new().await {    let storage_service = test      .document_manager      .get_file_storage_service()      .upgrade()      .unwrap();    // Upload zip file    let object = StorageObject::from_file(&Uuid::new_v4().to_string(), "./tests/asset/logo.png");    let url = storage_service.create_object(object).await.unwrap();    let image_data = storage_service      .get_object_by_url(url.clone())      .await      .unwrap();    // Read the image file    let mut file = File::open(Path::new("./tests/asset/logo.png")).unwrap();    let mut local_data = Vec::new();    file.read_to_end(&mut local_data).unwrap();    assert_eq!(image_data, local_data);    // Delete the image    let _ = storage_service.delete_object_by_url(url).await;  }}
 |