<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Test_error extends CI_Controller {

    public function __construct() {
        parent::__construct();
        // Opsional: Jika ingin hanya admin yang bisa memicu test ini
        // if ($this->session->userdata('role_name') != 'administrator') {
        //     show_error('Akses Ditolak. Hanya Admin yang bisa melakukan testing error.');
        // }
    }

    // 1. TEST ERROR GENERAL (File View Tidak Ditemukan)
    // Ini mensimulasikan kesalahan programmer memanggil view yang salah nama.
    public function general() {
        $this->load->view('view_yang_tidak_ada_sengaja');
    }

    // 2. TEST ERROR DATABASE (Tabel Tidak Ada)
    // Ini mensimulasikan query ke tabel yang rusak atau tidak ada.
    public function database() {
        $this->db->get('tabel_fiktif_yang_pastinya_tidak_ada_12345');
    }

    // 3. TEST ERROR PHP (Syntax Error / Undefined Variable)
    // Ini mensimulasikan penggunaan variable yang belum didefinisikan (Notice/Warning).
    public function php_notice() {
        echo $variable_yang_belum_dibuat; 
    }

// 4. TEST ERROR EXCEPTION
public function exception() {
    // Cara 1: Pakai show_error() — ini akan ditangkap oleh MY_Exceptions
    show_error('Ini adalah simulasi error untuk testing tampilan Kiosk.', 500, 'Simulasi Error Exception');
    
    // Catatan: throw new Exception() TIDAK akan ditangkap oleh CI3 error handler
    // kecuali Anda wrap dengan try-catch sendiri
}
    // 5. TEST ERROR 404 (Halaman Tidak Ditemukan)
    public function not_found() {
        show_404();
    }
    
    // 6. TEST FATAL ERROR (Parse Error) - KHUSUS
    // Fatal error seringkali TIDAK bisa ditangkap oleh CI error handler biasa.
    // Ini harus ditangkap oleh .htaccess -> error_kiosk_static.html
    public function fatal() {
        // Sengaja membuat syntax error (kurung kurang)
        // PERINGATAN: Ini akan membuat halaman blank/error 500 mentah jika .htaccess tidak beres.
        eval('function broken_syntax( { echo "test"; }'); 
    }
}