//go:build windows

package main

import (
	"encoding/json"
	"os"
	"strings"
	"testing"
)

// Gercek Shell onizlemesini dener. Ornek dosya yoksa atlanir.
func TestKucukOnizlemeGercek(t *testing.T) {
	yol := `C:\Windows\Web\Wallpaper\Windows\img0.jpg`
	if _, err := os.Stat(yol); err != nil {
		t.Skip("ornek dosya yok")
	}
	cikis, err := comBaslat()
	if err != nil {
		t.Fatalf("com: %v", err)
	}
	defer cikis()
	s, err := kabukiKucukOnizleme(yol)
	if err != nil {
		t.Fatalf("GetImage basarisiz: %v", err)
	}
	if !strings.HasPrefix(s, "data:image/png;base64,") {
		t.Fatalf("beklenmeyen onizleme: %.40s", s)
	}
	t.Logf("onizleme uzunlugu: %d", len(s))
}

// Arama sonucu zenginlestirme: yol birlestirme ve "kucuk" alani.
func TestKucukOnizlemeleriEkleYol(t *testing.T) {
	veri := json.RawMessage(`{"totalResults":1,"results":[{"type":"file","name":"img0.jpg","path":"C:\\Windows\\Web\\Wallpaper\\Windows"}]}`)
	out := kucukOnizlemeleriEkle(veri, kucukAyarlari{Acik: true, MaksDeneme: 40, SureSn: 3, ToplamKb: 200})
	var s struct {
		Results []map[string]any `json:"results"`
	}
	if err := json.Unmarshal(out, &s); err != nil {
		t.Fatal(err)
	}
	if _, ok := s.Results[0]["kucuk"]; !ok {
		t.Logf("kucuk alani yok (onizleme alinamadi ya da dosya yok)")
	}
}
